老黑讲Java之面向对象程序设计
1、面向对象程序设计
谈起面向对象程序设计,必须介绍一下面向过程的程序设计,C语言基于面向过程的开发,C语言编程可谓天马行空,但是结构很乱。
面向过程的开发缺点:
1、不能对数据进行封装;
2、对数据和方法进行分离。

2、抽象数据类型
抽象数据类型是指将不同类型的数据组成一个新的数据类型,如:变量name, age, gender, salary可以组成一个新的类型person类型。

3、类的概念
1、类是一种抽象数据类型;
2、类可以定义抽象数据类型的组成(成员变量)和方法,代码如下:
public class Person {
String name;
int age;
String gender;
String address;
public void runBook(String bookName) {
}
}
这样定义了一个Person类后,可以将代码模块化以及重用代码,并将数据与方法统一。

4、怎么定义一个类
1、类的定义包括成员变量和方法,其中成员变量描述该类型对象共同的数据结构。
2、类的成员变量定义使用如下语法:
class 类名{
成员变量类型 变量名称;
}

5、成员变量的类型
成员变量的类型是8种基本类型和引用类型。
6、定义类的方法
类中除了定义成员变量,还可以定义对象的行为,即方法,这样可以封装对象的功能,代码如下:
class 类名{
修饰词 返回值类型 方法名称([参数列表]){
方法体...
}
}
1、使用new关键字创建对象
定义类之后,可以使用new关键字创建对象,创建对象的过程通常称为实例化。
new运算的语法为:
new 类名();
例如:new Person()可以创建了一个新对象。

2、引用类型变量
为了能够访问实例化的对象,需要一个特殊变量——引用。
1、引用类型变量可以存放该类对象的地址信息;
2、当引用类型变量指向该类的对象时,通过这个变量对对象实施访问。
3、8中基本类型之外,类、接口、数组声明的变量称为引用类型变量,简称“引用”。
Person p = new Person(); //p就是引用类型。
3、访问成员变量和成员方法
Person p = new Person();
p.name = "老黑";
p.age = 18;
p.gender = "男";
p.address ="中国";
p.readBook("老黑讲Java之基础教程");
4、null和NullPointerException
对于引用类型变量,可以对其赋值为null,null的含义为“空”,表示还没有指向任何对象。例如:
Person p = null;
当一个为null的引用变量,引用成员变量,成员方法会产生NullPointerException。例如:
Person p = null;
p.name;
注意:作为合格的程序员一定要规避NullPointerException异常
