第1章 抽象和封装
一、类是对象的抽象,对象是类的实例
二、使用面向对象进行设计
面向对象设计的过程就是抽象的过程,分三步来完成: 1.找出它的种类 2.找出它的属性 3.找出它的行为
三、类名、属性名、方法名以及常量名的命名规则:
1.类名由一个或几个单词组成,每个单词的第一个字母大写,如Dog、StringBuffer
2.属性名和方法名由一个或几个单词组成,第一个单词首字母小写,其他单词首字母大写,例如health,stuName,println(),getMessage()。
3.常量名由一个或几个单词组成,所有字母大写,如PI,SEX_MALE
四、静态常量
1.static可以用来修饰属性、方法和代码块
2.static修饰的属性和方法称为类属性(类变量)、类方法
3.不使用static修饰的属性和方法,属于单个对象,通常称为实例属性(实例变量)、实例方法
4.static修饰的变量和方法可以通过类名和对象名访问,而不用static修饰的变量和方法只能通过对象名访问
属性 方法 调用方法 static 非private修饰 非 static ,private修饰 类属性,类变量 类方法 类名.属性 类名.方法() 对象.属性 对象.方法() 归属 类 单个对象 实例属性,实例变量 实例方法 对象.属性 对象.方法()
5.final可以用来修饰属性、方法和类
6.用final修饰的变量成为常量,其值固定不变
五、构造方法
1.构造方法是一个特殊的方法,它用于创建类的对象,因此一个类必须包含至少一个构造方法,否则就无法创建对象。
2.构造方法的名字和类名相同,没有返回值类型。
3.构造方法的作用主要就是在创建对象时执行一些初始化操作,如给成员属性赋初值。
六、方法重载的判断依据 1.必须是在同一个类里。 2.方法名相同
3.方法参数个数或参数类型不同。
4.与方法返回值和方法修饰符没有任何关系。
七、封装
1.封装(Encapsulation):是类的三大属性之一,就是将类的状态信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。 2.封装的具体步骤:
1—修改属性的可见性来限制对属性的访问,
2—为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的存取。 3—在赋值方法中,加入对属性的存取控制语句。
3.封装的好处:隐藏类的实现细节;让使用者只能通过程序员规定的方法来访问数据;可以方便地加入存取控制语句,限制不合理操作。 八、This的使用
因为this是在对象内部指代自身的引用,所以this只能调用实例变量、实例方法和构造方法 this不能调用类变量和类方法。 this也不能调用局部变量。
第二章 继承
一、使用继承 1.编写父类 Class Pet {
//公共的属性和方法 }
2.编写子类,继承父类 Class Dog extends Pet { //子类特有的属性和方法 }
Class Penguin extends Pet { }
二、理解继承
1.子类访问父类成员 使用super关键字 访问父类属性
Super.name; (super代表父类对象) 2 ) 访问父类方法 Super.print();
2.有些父类成员不能继承 1)private成员
2)子类与父类不在同包,使用默认访问权限的成员 3)构造方法
3.访问修饰符protected
1)可以修饰属性和方法
2)本类、同包、子类可以访问 4.符合is-a关系的设计使用继承 5.Java中,继承(Inheritance)通过extends关键字来实现,其中SubClass称为子类,SuperClass称为父类、基类或超类。
6.在子类中可以根据需求对从父类继承的方法进行重新编写,称为方法的重写或方法的覆盖。
方法的重写满足的要求:
7构造方法不能被继承因此不能被重写。 8.在子类中调用父类的构造方法? Super();
Super(参数表);
9.super代表对当前对象的直接父类对象的默认引用。在子类中可以通过super关键字来访问父类的成员。 Super的要求
10.继承条件下构造方法的调用规则: 11.使用this和super注意事项:
12.抽象类和抽象方法都通过abstract关键字来修饰。 13.abstract也可以用于方法——抽象方法 1)抽象方法没有方法体
2)抽象方法必须在抽象类里。
3)抽象方法必须在子类中被实现,除非子类是抽象类。 Public abstract void print();——没有方法体 14.final修饰符
1)用final修饰的类,不能再被继承 2)用final修饰的方法,不能被子类重写
3)用final修饰的变量(包括成员变量和局部变量)将变成常量,只能赋值一次。 注意:P57
15.abstract是否可以和private、static、final共用
第三章多态
一:1.个引用类型,使用不同的实例而执行不同操作。(父类引用子类对象)
使用多态的好处:通过多态可以减少类中的代码量,可以提高代码的可扩展性和可维护性。 2. 实现思路
编写父类
编写子类,子类重写父类方法
运行时,使用父类的类型,子类的对象。
三:实现多态的两个要素
1. 重写
使用父类类型 方法重写的规则 在继承关系的子类中
重写的方法名、参数、返回值类型必须与父类相同 私有方法不嫩计策因而也无法重写。 2.Instanceof运算符
语法:instanceof 类或接口
该运算用来判断一个对象是否属于一个类或者实现了一个接口。结果为true或false。 子类转换成父类时的规则: 子类到父类的转换(向上转换) 父类到子类的转化(向下转换)
第四章接口
一、接口可以看作是一种特殊的“抽象类”。
二、接口有比抽象类更好的特性 1.可以被多继承
2.设计和实现完全分离
3.更自然的使用多态
三、接口语法
public interface Myinterface{ public void foo(){ //其他方法 }
说明P99-100
使用接口:编写接口,实现接口,使用接口
四、接口特性
1.接口不可以被实例化
2.实现类必须实现接口的所有方法 3.实现类可以实现多个接口 4.接口中的变量都是常量
五、接口表示一种约定:体现在接口名称和注释上(有些接口只有名称,方法的实现方式要通过注释来约定)
面向接口编程:程序设计时面向接口的约定而不考虑具体实现。
六、接口是一种能力:体现在接口的方法上
面向接口编程:关心实现类有何能力,而不关心实现细节。
七、C#中的接口
[修饰符] interface 接口名 : 父接口1,父接口2, ?? { 属性定义 方法定义 }
class 类名 : 父类名,接口1,接口2, ?? { }
八、语法对比(Java&C#)
第六章异常
一:定义:异常是在程序的运行过程中所发生的不正常的事件,他会中断正在运行的程序 二:异常处理