标签:
面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。在面向对象程序设计(OOP)中,不必关心对象的具体实现。在传统的结构化程序设计中,算法是第一位的,数据结构是第二位的,即首先确定如何操作数,再考虑如何组织数据,以方便操作。而OOP则颠倒了这种次序,将数据放在第一位,然后再考虑操作数据的算法。
类是构造对象的模板和蓝图。通俗地说,类相当于建筑的图纸,而对象相当于建筑物。由类构造对象的过程称为创建对象的实例。
Java中通过关键字class
定义“类”,后跟类名。例如:
class Person{
// 类的主体内容
}
定义了一个Person类。
定义一个类时,可以在类里设置两种类型的元素:数据成员和成员函数。其中数据成员是一种对象,可以是任何类型。如果是指向对象的句柄,则必须初始化这个句柄,通过构造器与一个实际对象连接起来。如果是基本数据类型,则可以在类定义的位置直接初始化。
每个对象都为自己的数据成员保有存储空间;数据成员不会在对象之间共享。
class Person{ String name; double salary; }
通过new
关键字创建一个对象。如:
Person p = new Person();
某个主数据类型属于一个类成员,那么即是不明确进行初始化,也可以保证他们获得一个默认值。
主类型 | 默认值 |
Boolean | false |
Char | ‘\u0000‘(null) |
byte | (byte)0 |
short | (short)0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
如果一个变量作为类的成员变量,那么对于主类型一定会得到初始化,要特别注意初始化的值。对于局部变量则会得到一些随机值,如:int x;
不会自动初始化为0。
方法的基本组成部分包括名字、自变量、返回类型以及主体。方法的基本形式为:
返回类型 方法名(/*自变量列表*/) {/* 方法体 */}
返回类型是指调用方法之后返回的数值类型。方法名是对具体方法的标识和引用。自变量列表列出****了想传递给方法的信息类型和名称。
在Java中方法的调用形式为对象名.方法名
尽管Java是完全面向对象的。但是,操作的标识符实际指向一个对象的“句柄”,又称“引用”。句柄是可以独立存在的,并不是说,拥有一个句柄就必须有一个对象与之对应。比如,int i;
定义了一个整型变量i,并不表示它一定有值。如,创建一个String类型的句柄:
String s;
这里只是创建了句柄,并没有创建对象。由于s并没有与之关联的对象,如果调用s将出现异常。所以,创建时需要进行初始化。
String s = "hello";
在Java中,通过new关键字创建对象,它将返回对象的引用(即句柄)。所以
String s = new String("hello");
创建了一个内容为"hello"的String对象,并将该对象的句柄(引用)交给了s保存。
对象的三个主要特性:
对象的行为是由可调用的方法定义的。每个对象都保存着描述当前特征的信息,这就是对象的状态。对象的状态不会自发改变。一个设计良好的类,它的对象只能通过调用方法实现,如果不经过方法调用就可以改变对象的状态,说明封装性受到了破坏。
封装:将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方法。封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域。程序仅通过对象的方法域对象数据进行交互。
对象中的数据称为实例域(instance field)或属性。操纵数据的过程称为方法(method)。对于每个特定的对象都有一组特定的实例域值(属性值),这些值的集合就是该对象的当前状态。
类之间常见的关系:
一个对象并没有实际包含一个对象,而仅仅引用一个对象。
在Java中,任何对象变量的值都是都是对存储在另外一个地方的一个对象的引用。new操作符的返回值也是一个引用。
标签:
原文地址:http://www.cnblogs.com/xiaoxiaoyihan/p/4931608.html