BUAA_OOpre_1
Lecture 1 Java程序入门与代码管理
面向对象是一种以对象为中心来构建程序逻辑的方法;
- 程序逻辑:数据及其关系 + 行为及其关系
类与对象:
- 面向对象语言使用“类”(class)这个概念来抽象化“对象”,一个类可以实例化出任意数量的对象,对象包含了数据和行为
- Java程序中类由属性和方法组成,其中属性定义了数据结构,方法定义了对数据结构的操作函数
- 每个类都有一种构造方法用以实例化对象,而所谓构造方法则是指初始化该类的属性变量,然后返回对象指针
- 类的名称与相应文件的名称必须一致,一般一个Java文件只定义一个类
封装,继承,多态:
(1)封装: 提供清晰的接口,让类的内部复杂性外部不可见;
- 类封装了数据和方法,通过可见性来限制外部对内部数据和方法的访问
- 改变类的内部实现细节不影响类的使用者的使用
(2)继承: 建立类之间的抽象层次来协同降低复杂性;
- 子类从父类中获得属性和方法的机制
子类可以获得父类的设计与实现,从而实现复用
子类可以对父类进行拓展
(3)多态:类通过提供多种形态方法来解耦复杂度;
- 解藕了类针对同一个指令的多种处理逻辑,面向对象语言提供了自动根据对象和输入参数来匹配合适的方法
- 不同功能形态以参数区分
变量作用域:
(1)类级:
- 一个类的所有实例化对象共享访问该类的静态成员变量(static)
(2)对象级:
- 每个实例化对象拥有一份对立的类中声明的普通成员变量
(3)方法级:
- 在方法中声明的局部变量(包括在参数中声明的和在方法体中声明的变量),在每次方法执行时变量的取值都会初始化
(4)语块级:
- 方法语句块中声明的局部变量,能够覆盖所有上一层次语句块所声明的变量
接口(interface):
接口是与类处于同一层次的类型,接口中只有方法声明没有属性,且接口中的方法没有实现体
任何一个类都可以实现一个接口,进而使用该接口来调用接口类型中的方法
1
2
3
4
5
6
7
8
9
10public interface Showable { // 定义一个Showable接口类型
void print (); //接口类型中定义的print方法
}
public class Agent { // 我们考虑有Agent这样一个类
...
public void show(Showable person) { /* 在Agent类中定义一个show方法,这个方法的参数是Showable接口类型的一个实例化的接口person*/
person.print(); /* 我们通过person.print()的方式来调用print()*/
}
}
Java程序中的关系:
- 类关系:继承关系,关联关系
- 类与接口关系:实现关系,关联关系
- 接口间关系:继承关系
Java程序中的访问权限设置: 一个类中的成员能否被外部访问的规则
- public:任意外部对象都能访问
- protected:任意本类对象或子类对象都能访问
- private:只有本类才能访问
Java程序中的static声明:
(1)static关键字用于声明属性和方法
(2)类的静态属性可以被类的所有对象共享访问
(3)方法访问属性:
- 静态方法只能访问静态属性
- 非静态方法能访问非静态属性和静态属性
(4)方法调用方法:
- 静态方法只能调用静态方法
- 非静态方法可以调用非静态方法和静态方法
Java程序中的Object类:
所有自定义的类都默认是Object的子类,Object中内置了许多重要的方法,如equals方法等。由于子类可以继承父类的方法,我们在自定义的类中可以使用这些方法;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Chères étoile!