Charpter.1

除去语法以外超级浓缩版本,或许能帮你考试糊弄过关。

1.访问private属性,使用类内的函数getter()。

工具栏:Source-->generate getters and setters


2.内部类

创建外部类的同时,用外部类对象创建内部类对象,方法如下:

内部类 对象名=外部类对象.new 内部类构造方法。

例:Inner i = hello.new Inner();

四种内部类:成员内部类,静态内部类,方法内部类,匿名内部类。

成员内部类

注意:1、 外部类是不能直接使用内部类的成员和方法

            解决办法:先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。

         2、如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字。

格式: 外部类.this.外部类属性

静态内部类(static):

            1、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问

            2、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员

            3、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建内部类 对象名= new 内部类();

方法内部类:

            内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。

            注意:由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 static 修饰符。

例:// 外部类中的show方法

    public void show() {

// 定义方法内部类

class MInner {

int score = 83;

public int getScore() {

return score + 10;

}

}

3.继承“is-a”

父类不能“private”修饰,且private修饰的属性无法继承。

extends关键字【理解成扩展父类的功能即可】

创建对象时,先父类的属性初始化-->父类构造方法,再子类的属性初始化-->子类的构造方法


注意:父类定义了含参构造方法之后,必须附上无参的默认构造方法,否则子类会报错

4.重写

与父类方法的定义完全相同,即可覆盖。

5.final关键字【无法再修改】

方法无法覆盖、该无法被继承,该属性不进行隐式初始化或在构造方法中赋值(择其一,而且必须执行其一),该变量只能初始化一次此后变为常量

6.super关键字

指代父类对象。

7.Object

 toString()方法返回对象的哈希code码(对象地址字符串)

格式:【System.out.println(对象名)】

可以重写toString方法来输出对象的属性。【菜单Source-->generate toString】

equals()方法比较对象的引用是否指向同一块内存区。(是否是同一个东西而非同样属性的不同东西)【重点】

类似于“==”,因为对象之间的==比较的是是否为同一个对象。

重写的步骤与上一步相同,可以比较两个对象的属性是否相同。

8.多态

a.引用多态(1.父类引用指向本类对象;2.父类引用指向子类对象Dad dad = new Son();)

b.方法多态(将父类方法重写或继承)

注意:子类独有的方法无法用父类引用调用

9.引用类型转换

向上:隐式/自动类型转换,小类型向大类型(子类引用转父类引用Dad dad = son;可用)

向下:强制类型转换【有风险,如溢出】(Son son = dad;有风险,应当以Son son = (Son) dad;的格式)

注意:当一个父类对象引用本身就是从子类a的对象引用转换过来的,无法强制转换成子类b的对象引用【理由:类型已经不同】

instanceof关键字的使用【是否属于同一类型】

格式:对象名 instanceof 类名

如果true,则进行强制类型转换。

10.抽象类

关键字abstract

子类的随机性。

格式:public abstract class 类名{}

1.抽象方法只能有声明。

2.有抽象方法的类一定是抽象类,其中抽象类可以包含普通的方法。

3.抽象类不能直接创建,可以定义引用变量。


11.接口interface定义 & implements引用)

接口可以继承(extends)父接口,内部是常量抽象方法

格式:【修饰符】interface 接口名 [extends 父接口1,...]

接口内部的抽象方法不能被privateprotected修饰。

被应用的接口中的抽象方法必须被实现

格式:【修饰符】class 子类名  extends 父类名 implements 接口1,接口2...

{}

接口的引用可以指向一个实现了接口的对象

还有一种用法,结合匿名内部类

即没有名字的内部类,关注实现而非实现类的名称。

格式:

接口名    接口引用  =  new 接口名()

        //抽象方法实现

};//即当即创建,仅限于该接口引用可用。

接口引用.抽象方法;

或者

new 接口名()

//抽象方法实现

}.抽象方法;

也可达到目的。

12.UML

用例图:表达系统如何满足所收集的业务规则,以及特定的用户需求等信息。【去餐馆吃饭,顾客和厨师的需求和职能。】

序列图:按照交互发生的序列顺序,描述对象之间的交互。【银行取钱的过程】

类图:类名,属性,方法(override重写)

用powerdesign做类图(也能自动生成java代码,菜单栏中的“语言”-->“Generate Java code”)

属性设置:

http://blog.csdn.net/kimizhou_blog/article/details/75751233

你可能感兴趣的:(Charpter.1)