一、对象与类
1、类与对象的关系:类定义了一类对象的类型,对象是类的具体化,是类的实例。
2、类的声明格式:[类修饰符]class 类名
{ 类体:变量的定义,方法的定义
...
}
3、类的修饰符:
(1)public关键字声明的类可以在其他任何类中使用。无此关键字 时,该类只能被同一个程序包中其他的类使用。
(2)abstract声明这个类是抽象类,即这个类不能被实例化。抽象类不具备具体功能,只用于衍生出子类。
(3)final声明该类不能被继承,即没有子类。不能通过扩展这个类来创建新类。
4、类的成员:类成员变量、类成员方法
*如果在声明时不用static关键字修饰,则声明为实例变量和实例方法
*类变量可通过类名直接访问,也可通过实例对象访问类变量。
*实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作,实例方法由实例对象调用。而类方法不能访问实例变量,只能访问类变量。类方法可以由类名直接调用。
注意:成员变量在定义当中,不可给变量赋值,不能有任何操作,但可 对变量初始化。
成员方法的定义包括方法声明和方法体;成员方法的声明包括方法名,返回类型和参数。
5、成员变量的访问控制符:
1)private 成员只能被它所定义的类所访问。
2)protected 允许类本身、相同和不同包中子类以及在相同包中的其他
类访问这个成员。
3)public 修饰的成员在程序中的任何类中、任何包中都可被访问。
6、方法修饰符
成员方法的访问控制符与成员变量的访问的作用和用法几乎是一样的
成员方法的非访问控制符:
1)static 修饰的方法是类方法。类方法被所在类和该类的所有实
例所共享。
2)final在方法之前,防止该方法被覆盖
3)abstract 修饰一个方法时,该方法为抽象方法,只需声明,不
需实现
7、构造方法
构造方法是一种特殊的方法。java中的每个类都有构造方法,用来初
始化该类的一个新的对象。构造方法具有和类名相同的名称,不返回任何
数据类型。
构造方法的特殊性:(1)构造方法的方法名誉类名相同;(2)构造方
法没有返回类型;(3)构造方法不能被 static,final,abstract,native
等修饰符修饰;(4)构造方法不能像一般方法那样用“对象.”显示地直
接调用,应该用new关键字调用构造方法为新对象初始化。
另外,一个类只定义了有参数的构造方法的话,它就不存在默认的构方
法。
8、对象的创建与使用
一个对象的生命期包括三个阶段:生成、使用和清除。
对象的生成包括声明、实例化和初始化三方面内容。通常格式为:
type objectName=new type([参数列表])
生成对象的最后一步是执行构造方法,进行初始化。由于对构造方法可以
进行重写,所以通过给出不同个数或类型的参数会分别调用不同的构造方法。
使用对象:<对象>.<域变量名> <对象>.<方法名>
二、程序包
1、包的创建:
要建立一个包,需要使用package语句,而且它应该是整个.java
文件的第一个语句,其格式为:package 包名;
2、包的使用
1)装载一个类:(1)包名.类名;(2)import 包名.类名;
注意:在访问不同package里的类时,被访问的类必须是public类。
2)带包语句的java文件的编译和执行:
同一个包内:javac -d.类名.java (javac 包名\类名.java)
执行main方法的主类 :Java 包名.类名
不在同一个包中:javac -d.类名1.java (javac 包名1\类名.java)
Javac -d.类名2.java (javac 包名2\类名.java)
Java 包名.类名
三、java的继承
Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的
定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性
的继承父类。Java不支持多重继承,一个类只能有一个父类,同时一个类
可以实现多个接口,克服了单继承的缺点。
1、父类与子类之间的关系具有:
(1)共享性 即子类可以共享父类的公共域和方法
(2)差异性 即子类和父类一定会存在某些差异
(3)层次性 即由java规定的单继承性,每个类都处于继承关系
中的某一个层面。
2、子类的定义
[类的修饰符]class<子类名>extends<父类名>{
<域定义>;
<方法定义>;
}
3、this与super
Super关键字表示超父类,this变量代表对象本身。
This用途:指向隐藏域参数;用this引用类中的其他构造函数
(必须让这个语句出现在构造函数的第一行)
This 用法:(1)普通的直接引用;(2)方法中的某个形参名与当前对
象的某个成员有相同的名字时用this区分,有this引用的是成员,没有this
的是形参。(3)引用构造函数。
Super:调用super()必须写在子类构造方法的第一行。"super.x"代表
从父类继承下来的但被隐藏的x值。
注意:(1)this和super不能同时出现在一个构造函数中;可以用this调用
一个构造方法,但不能调用两个。
(2)this()和super()都指的是对象,所以均不可以再static环境
中使用。This是一个指向本对象的指针,super是一个关键字。
四、java的多态
1、多态性的实现:
1)覆盖实现多态性:通过子类对继承父类方法的重定义来实现。使
用时注意:在子类重定义符类方法时,要求与父类中方法的原型完全
相同。即参数个数、类型、顺序
2)重载实现多态性:通过定义类中的多个同名的不同方法来实现。
五、接口
1、接口的定义:接口是由常量和抽象方法组成的特殊类。
[public]interface 接口名[extends父接口名]
{
接口体
}
注意:接口不是类,绝对不能用new操作符实例化接口。可以声明接口变
量。接口变量必须指向一个实现了接口的类的对象。
2、接口的实现:
[修饰符]class 类名[extends父类名] implements 接口名表
|