1. 面向对象的设计思想
2. 现实世界中的实体,事物(对象)和对一类事物的概括,抽象(类)
某台电脑 --> 实体 --> 对象
头脑对电脑的描述 -->一类事物的概括 --> 类
对某一类型事物进行概括时,关注它的特征和行为
尺寸,颜色,屏幕大小,品牌... --> 特征 --> 属性
开机,关机,运行程序... --> 行为 --> 方法
3. Java面向对象的编程中,使用Java语言来表达现实中的事物和事物的概括
对象(Object),实际存在的事物。对象是类的实例(instance)。
类(Class),对一类型对象的概括。类就是对象的模板。
4. 程序开发人员主要任务就是封装类,利用类创建出对象,执行对象的方法来完成任务。
5. 在对某一类型的事物进行概括时,需要使用抽象的方式来关注与主题相关的内容,忽略与主题无关的内容。
6. 封装类:对某一类型事物的特征(属性)和行为(方法),使用抽象的方式,用Java语言写成一个程序单元。这个程序单元就是我们常说的类。
7. Java语言中声明一个类的语法:
访问控制符 [修饰符] class 类名{
//类的主体,类体
属性的声明; //访问控制符 [修饰符] 数据类型 变量名 [=值];
//作用:创建对象,并对属性进行初始化
//声明语法:访问控制符 类名(形参列表){ //构造体; }
构造方法;
方法的声明;
//访问控制符 [修饰符] 返回值类型 方法名(形参列表){ //方法体; }
}
8. 声明类类型的变量: 类类型 变量名;
用new关键字调用构造方法来创建对象。
这两步一起完成:类类型 变量名 = new 构造方法(实参列表);
9. 访问对象的属性和方法:
访问属性:对象变量名.属性; //有访问权限的情况下
访问方法:
实例方法:对象变量名.方法(实参列表);
类方法:被static修饰的方法.也叫静态方法。
类名.方法(实参列表); //对象变量名.方法(实参列表);
10.构造方法:如果没有给一个类提供任何构造方法,编译器编译时会自动添加一个无参的构造方法。如果类中提供了一个构造方法,编译器就不再为这个类提供默认的构造方法了。
无参构造方法:也叫默认构造方法
有参构造方法:
11. 方法重载(Overload):同一个类中的多个方法,方法名相同,参数列表不同,这就构成了重载。
不能根据返回值类型和访问控制符来判断方法的重载。
方法重载的作用:方便使用者的使用。提供程序的可用性。
12. this关键字,每个非静态方法中隐含一个this变量,this变量代表当前对象的引用。
this的用法:
1) 在方法中显式调用本类的成员。在方法的参数跟成员属性同名用得最多。 this.xxx; this.xxx(..);
2) 在构造方法的第一句显式调用本类的其它构造方法。
this(...);
13. 方法的参数传递:在Java语言中,只有传值调用。没有传引用调用。
14. static关键字
1) static修饰属性:静态属性,类属性。类的所有对象共享这一个属性
2) static修饰方法:静态方法,类方法。类的所有对象共享这一个方法
静态方法不能访问非静态的成员。不能使用this变量。
3) static不能修饰类。
4) static不能修饰局部变量。
5) static修饰代码块:静态代码块。静态代码块是在JVM加载本类的字节码时执行的。之后就不再执行了。
15. package关键字:用来给某个类指定包。要是源文件中的第一句。
包名可以有层次,层次间用.隔开。
编译带包名的类要使用:javac -d . 源文件名.java
带包的类要生成与包层次对应的目录结构。
运行带包的类要使用全限定名:java 包名.类名
import关键字:在类中可以使用import语句导入指定包下的指定类。
注意:不带包的类是放置在默认包下,默认包无名,不带包的类无法被带包的类使用。