package com.org.lxh;import java.util.Calendar;/*** 面向对象编程入门* @author hemmingway <hemmingway@163.com>**/
public class Chp6 {int num=500; //成员变量public static int num2=200; //静态变量public static final double PI=3.1415926; //静态常量/*** 静态方法*/public static void printInfo(){System.out.println("通过静态方法输出的信息");}/*** 静态语句块*/static {System.out.println("initial......");}/*** @param args*///@SuppressWarnings("static-access") //用实例引用static变量,方法时会出现这个警告,错误public static void main(String[] args) {// TODO Auto-generated method stub//1、面向对象的特征有哪些?Java、C++、C#/** 封装:面向对象的编程中,大多数是以类作为数据封装的基本单位。封装可以隐藏实现的细节,使得代码模块化。* * * 继承:任何类都可以从另外一个类继承,就是说,这个类拥有它继承的类的所有成员。* * * 多态:减少代码之间的紧密耦合,增加应用程序的灵活性。* * *///2、为什么需要面向对象?/** 在较早的软件开发中(没有出现面向对象思想前),一般会存在以下问题:* * 软件重用性差* * 软件可维护性差* * 开发出来的软件不能满足用户的需求变化* *///3、什么是面向对象编程?/** * *///4、什么是类?/** 类是具有相同性质和功能的事物所构成的集合体,是对现实事物的一种抽象描述。* * *///4、类和对象的区别是什么?/** 类(Class)是抽象的概念,用于创建对象;* 对象是类的实例,是客观世界真实存在的实体。* *///5、抽象类与抽象方法有什么作用?/** Java中声明抽象类时使用abstract关键字,具体方法格式如下:* * 权限修饰符 abstract class 类名{* //类成员* }* * (1)、抽象类不能直接实例化,抽象类不能用new操作符新建对象出来;* (2)、抽象类中可以包含抽象成员,非抽象类中不可以;* (3)、如果一个非抽象类从抽象类中派生,则必须通过覆盖来实现所有继承而来的抽象成员。* * * 抽象方法就是在声明方法时,加上abstract关键字。声明抽象方法时需要注意一下3点:* (1)、抽象方法必须声明在抽象类中;* (2)、抽象方法不能使用static和private修饰符;* (3)、抽象方法不提供任何实际实现,需要在非抽象类中重写抽象方法。* * 参见抽象类 AudioMedia 的声明* 抽象类的实现 MP3Music 类* *///6、访问权限public、protected、private/** * *///7、构造方法有何作用?/** 通过构造方法可以创建类的对象,也可以创建对象的同时初始化类的数据成员。* * 构造方法通常用于创建类的实例(对象),并完成必要的初始化处理。* * MP3Music 类演示使用构造方法* *///8、只能通过构造方法创建对象?/** Java通常通过构造方法构造创建对象。* 但是也有另外,java.util.Calendar 类不能通过构造方法创建对象 * * 其他的方法有工厂方法,放射方法创建* */Calendar cal = Calendar.getInstance(); //创建Calendar对象System.out.println(cal.getTime()); //Sun Dec 02 16:05:06 CST 2012//9、什么是方法重载?/** 方法重载是指在一个类或接口中可以有多个相同的名称的方法,这些相同名称的方法具有不同的形参,* 即形参的个数不同或形参的类型不同。* * MP3Music 类中有构造方法的重载* *///10、static和final的区别/** 静态变量不属于某一个特定的类* * 权限修饰符 static 数据类型 变量名;* private static int num = 100;* * 在Java中使用final关键字声明常量,如果在声明常量时,使用static关键字进行修饰,则该常量就是静态常量* * 权限修饰符 static final 数据类型 常量名=常量值;* public static final double PI=3.1415926;* */Chp6 chp6 = new Chp6();System.out.println("通过类的实例输出成员变量num和静态成员变量num2的值:");System.out.println(chp6.num + " " + Chp6.num2); //chp6是实例输出, Chp6类名输出//11、静态方法/** 不需要通过类的实例进行访问,而是通过类名直接访问。* * [权限修饰符] static 数据类型 方法名(){* 方法体;* }* */Chp6.printInfo(); //访问静态方法//12、静态语句块/** 静态语句块通常用于进行必须的初始化操作* * 主方法中不需要写任何代码* *///13、如何在一个类中访问另外一个类的方法?/** * */}}
initial......
Mon Dec 03 16:17:00 CST 2012
通过类的实例输出成员变量num和静态成员变量num2的值:
500 200
通过静态方法输出的信息