Charpter.1

作者: 先生Tank | 来源:发表于2018-10-10 10:09 被阅读0次

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

    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

        本文链接:https://www.haomeiwen.com/subject/bkcwoftx.html