面向对象概述
面向对象程序由对象组成,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。
面向过程首先要确定如何操作数据,然后再决定如果组织数据,以便数据操作。而面向对象调换了这个次序,将数据放在第一位,然后再考虑操作数据的算法。
类是构造对象的模板或蓝图。
OOP让用户自定义类变得轻而易举,可以通过扩展一个类创建另一个类。
每个对象都保存着描述当前特征的信息,这是对象的状态。
类与类之间的关系:依赖(use a ),聚合(has a),继承(is a )
使用预定义类
要使用对象必须先构造对象,并指定初始形态,然后对对象应用方法
使用new关键字创建对象
new Date();
在对象与对象变量之间存在一个重要区别。
Date dateTest;//创建对象
变量dateTest不是一个对象,也没有引用对象。必须先初始化
Date dateTest = new Date(); //使用新构造的对象初始化这个变量 Date test1 = new Date(); Date test2 = test1;//引用一个已存在对象
一个对象变量并没有包含一个对象,而是引用一个对象。
构造方法
//构建对象 //如果没有写构造器,则默认无参构造 //如果写了有参构造器,则无法构造无参对象 public class CreateObject{ public static void main(String[] args){ //创建对象 CreateObject createObject = new CreateObject(); } }
构造器必须与类名相同。在构造对象时,构造器会运行,以便将实例域初始化为希望的状态。
1、构造器与类同名 2、每个类有一个以上的构造器 3、构造器可以有0个、1个或多个参数 4、构造器没有返回值 5、构造器总是伴随new操作一起调用
不要在构造器中定义与实例域重名的局部变量。
隐式参数与显式参数
方法用于操作对象以及存取它们的实例域
public void test(String s){ String s2; }
方法中s是隐式参数,s2是显式参数。
隐式参数用this关键字表示
public void raiseSalary(double byPer){ double raise = this.salsry; //使用this关键字区分实例域与局部变量 }
封装
封装应该提三个内容:一个私有的数据域;一个公有的访问方法;一个公有的更改方法。
private修饰的方法是私有方法。
final修饰的是不可变的。
静态域与静态方法
静态方法是一种不能向对象实施操作的方法。不能在非静态方法中调用静态方法。
在两种情况下使用静态方法:
1、一个方法不需要访问对象状态,其所需参数都是通过显式参数提供
2、一个方法只需要访问类的静态域。
方法参数
方法参数的类型:基本数据类型和对象引用
Java是值传递