Java是一门完全面向对象的编程语言,类和对象是面向对象的基础核心部分的内容。所谓面向对象,是指编写程序的时候围绕着一个对象的功能进行编写。面向对象编程的英文缩写是OOP,全称为Ojbect Orient Programming。面向对象编程方法和成员变量都写在具体的对象里,并对其成员变量和方法有很好的隐藏性;对象之间的访问都是通过其接口进行的。面向对象的主要特点有四个:继承、多态、抽象和封装。
继承是发生在类与类之间的,是子类共享父类成员变量和方法的一种模式,通过扩展子类的方法可以使子类有比父类更加强大的功能。
多态是指对象在运行期和编译期具有多种状态,多态的使用使代码具有了更多的灵活性和重用性。多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。
抽象是指在定义类的时候,确定了该类的一些行为和动作。比如自行车可以移动,但怎么不进行说明。这种提前定义一些动作和行为的类为抽象的。
封装是指对一件物品的描述信息是这个物品所特有的,是不能让外界看到的一些成员变量和方法。在Java里成员变量和方法就被封装在类里,需要通过一些特有的方法访问他们。
一、对象
在现实生活中只要是一个具体的物体或者一件具体的事物就是个对象;如电脑、鼠标、人...你会从哪些方面去描述对象,一个人的特征(属性):身高、外貌、性格、性别、职业、年龄、姓名等等;行为(功能或方法):学习、工作、吃饭、走路、跑步、说话等等。
二、类
类是Java的核心,所有的Java程序都是基于类的,它定义了对象的属性和行为。类是一种抽象的东西,描述的是一个物品的完整信息。程序中类是由生活中对象的特征和行为,按照程序中类的固定格式进行定义的模板(我:程序中的类是由生活中的对象抽象而来的)。程序中的类是由属性、方法两个部分组成;属性对应的是对象的特征;方法对应的是对象的行为。
类又分为已有类和自定义类,当使用的类和被使用的类在同一目录下时,就可以直接使用创建类的实例,从而使用该类。如果想使用不同目录下的类,则首先需要使用import将该类引入到程序中。
引入类的格式:import 包名.类名;
例:import a.bike; (a是在定义bike类时定义的包)
三、类的基本格式
public class 类名 {
//属性的格式
public 数据类型 属性名;
//方法的格式
public 返回值类型 方法名(数据类型 参数名 , ...){
//详细代码
}
}
四、实例化对象和调用属性、方法的格式
实例化对象的关键字:new
格式:
类名 对象名 = new 类名();
调用属性和方法
对象名.属性名
对象名.方法名(参数值 , ...);
实例化实例:bike b=new bike();
【代码解析】用new关键字创建对象bike,这个对象在内存中是存在的。用b在内存中对这个bike类的对象的引用,使用b就能使用这个对象的数据。
五、成员变量和局部变量
成员变量就是这个类里定义的一些私有变量,这些变量属于这个类。成员变量表示对象的属性,方法则表示对象的行为。
局部变量和成员变量很相似,都是描述信息的。局部变量和成员变量的不同点就是局部变量是在方法体里创建的,在方法体外是访问不到这个变量的。
需要注意的是局部变量描述的是方法体的一些属性或状态的,局部变量只在局部有效,也就是在一个语句块内有效,如果局部变量在声明之后不为其赋初始值则系统不会为其分配初始值。
六、成员变量的初始化
通过new关键字创建一个对象之后,如果对象存在有成员变量,系统就会为其自动分配一个初始值,所以不管在创建成员变量的时候有没有给变量一个值,系统都会有一个默认的值。成员变量和对象的引用在声明的时候不对其赋初值,那么系统都会赋一个初值,具体的信息如表所示:
类型
|
默认值
|
Byte |
0
|
Char |
'\u0000’
|
Boolean
|
false
|
Short
|
0
|
Int
|
0
|
Long
|
oL
|
Float
|
OF
|
Double
|
0.0D
|
引用对象
|
null
|
七、局部变量和成员变量的区别
局部变量描述的是这个方法体内的属性,而成员类变量描述的是这个对象里的属性的,它们之间的区别,即访问区别如下:
<一>成员变量可以被public、protected、default、private、static、final修饰符修饰。
<二>局部变量可以被final修饰符修饰,但是不能修饰为public、protected、default、private、static。
<三>成员类变量是在堆里进行创建的,而局部变量是在栈里进行创建的。
<四>成员变量是系统默认值;局部变量没有系统默认值,必须手动赋值。