面向对象编程设计
面向过程式开发的弊端
- 缺少对数据之间的统一封装
- 缺少数据与方法之间的分离
使用面向对象式程序设计
抽象数据类型
- 什么是抽象化数据类型
将多个不同的数据类型组合在一起用来描述某一个事物,形成一种新的数据类型:抽象化数据类型。 - 类:就是抽象化数据类型
类中的组成部分:成员变量(属性)
方法(行为)
static:修饰方法- 被static修饰的方法不可以调用没有被static修饰的成员(成员变量和方法)
- 没有被static修饰的方法可以调用static修饰的成员也可以调用没有被static修饰的成员
- 无论是有没有被static修饰,都可以通过类创建对象调用
类与对象
- 类:是一种抽象化概念,是群体的概念
- 对象:是实例化个体,是个体的概念
类是对象的抽象化模型,对象是类的实例化对象
如何通过类实例化对象
公式: 类 引用 = new 对象
例如:Emp emp = new Emp();
创建好的对象是通过其引用调用类中的成员(成员变量和方法)使用
局部变量与成员变量
- 局部变量定义在方法中的变量,而且这些变量是没有默认值的,所以在使用时必须初始化
- 成员变量定义在类中,是类的组成部分之一,而且这些变量在定义时可以不初始化,因为他们有各自的默认值。
类中的构造方法
- 什么是构造方法:其实就是在通过类创造对象时所调用的方法,主要是给对象的成员变量赋初值。
Emp emp = new Emp();
在创建Emp对象时默认调用了无参的构造方法 - 构造方法
方法名与类名同名,并且没有返回值类型类名(){ }
- 如果一个类中没有创建构造方法,则系统默认会给出一个无参构造方法,使之能够通过该无参方法创建出对象;
- 如果一个类中创建了无参或有参的构造方法,那么系统就不会给出默认的构造方法;
- 如果一个类中既有有参构造方法,也有无参构造方法,那么在创建对象时,需要根据对象的参数列表而调用有参或无参的构造方法。
public class Demo {
public static void main(String[] args) {
Demo demo = new Demo();//无参构造创建对象
Demo demo1 = new Demo(3);//有参构造创建对象
}
Demo(){
System.out.println("无参构造方法");
}
Demo(int a){
System.out.println("有参构造:"+a);
}
}