面向对象(Object Oriented)是一个编程理念,其发明者曾经获得图灵奖。对于初学者来说,应该从最直观的角度来理解什么是面向对象,因此本着负责的态度,我们将从最原始,最直观的角度来理解面向对象。从学院派的角度来评价不一定是完全严谨的,但是对于初学者,这样理解能够快速进入面向对象的世界。
在面向对象中,最重要的概念是类(Class)和对象(Object)。
•认识类与对象
类与对象是整个面向对象中最基础的组成单元。
类:是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法);
对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。
可以一句话来总结出类和对象的区别:类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。
•定义类
定义类语法如下:
class 类名{
所含变量定义;
}
示例如下:
class Customer{
String name;
String sex;
Int age;
}
•使用类实例化对象
一般情况下,由类定义“变量”不叫“定义变量”,而叫“实例化对象(Object)”。通过类实例化对象的最简单的语法如下。
类名 对象名 = new 类名();
示例如下:
Customer zhangsan = new Customer();
上述语句通过 Customer 类型定义了一个名为“zhangsan”的对象,就好像“int i”一样,只不过“zhangsan”中包含 name、sex 和 age 3 个变量。
(1)对象的实例化还可以写成以下两句代码。
Customer zhangsan;
zhangsan = new Customer();
第一句相当于定义了对象 zhangsan,它是一个 Customer 类型,这称为对象引用,但是还没有给其分配内存,该引用指向空值(null),如图 1-1 所示。
第二句让 zhangsan 引用指向一个实际的对象,为其分配了相应内存,如图 1-2所示。
图 1-1 引用指向空
图 1-2 引用指向一个实际的对象
如果不用关键字 new 分配内存,该对象为空值(null,不能使用。
(2)在一些文献中,成员变量也称为字段(Field)、属性(Property)等。
•访问对象中的成员变量
通过对象名使用成员变量的最基本的方法如下。
对象名.成员变量名
例如,“zhangsan.age”表示访问对象 zhangsan 的成员变量 age,示例代码如下。
ObjectTest1.java
class Customer {
String name;
String sex;
int age;
}
public class ObjectTest1 {
public static void main(String[]args){
Customer zhangsan = null;
System. out. println("zhangsan ="+ zhangsan);
zhangsan = new Customer();
System. out. println("zhangsan. name ="+ zhangsan. name);
System.out. println("zhangsan.sex ="+ zhangsan. sex);
System. out.println("zhangsan.age ="+ zhangsan. age);
zhangsan. name ="张三”;
zhangsan.sex ="男";
zhangsan.age = 25;
System. out. println("zhangsan. name ="+ zhangsan. name);
System. out. println("zhangsan. sex ="+ zhangsan.sex);
System. out. println("zhangsan. age ="+ zhangsahng.age);
}
}
运行结果如下:
zhangsan=null
zhangsan.name=null
zhangsan.sex=null
zhangsan.age=0
zhangsan.name=张三
zhangsan.sex=男
zhangsan.age=25
在没有赋值时,对象的成员变量中字符串型为空值(null)、int型为“0”。
总结:
Java面向对象概述和三大特性 Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心。 围绕着 Java 类和 Java 对象,有三大基本特性:封装是 Java 类的编写规范、继承是类与类之间联系的一种形式、而多态为系统组件或模块之间解耦提供了解决方案。