JAVA笔记(九)--深入了解类

192 阅读3分钟

回顾:

1.方法参数:

​ 1.参数列表为一个:

​ 形参和实参值的问题;

​ 2.参数列表为多个:

​ 形参和实参一一对应;

​ 3.参数列表为数组:

​ 参数使用的时候判定空;

​ 4.参数列表为对象:

​ 使用判定空;对象所对应的类;

2.包的命名规范问题:

​ "."作为连接符号,但是不能为开头和结尾;

​ 包名是域名的倒装加上项目名等组成;

问题:对象的属性可以直接去赋值操作,安全性低?

1.类图:

对于标准的UML类图,他的第一行表示类的名称,第二行是类的属性,也就是它的成员变量,第三行表示类的方法。

当然,他们都是有可见范围的。在UML类图中,加号(+)表示具有公共可见性(public)。减号(-)表示私有可见性(private)。#号表示受保护的可见性(protected)。省略这些修饰符表示具有package(包)级别的可见性。如果属性或操作具有下划线,表明它是静态的。在操作中,可同时列出它接受的参数,以及返回类型,如图:图片

​ a. 属性前"+"表示public

​ "-"表示private,

​ ‘#’表示protected。

​ 方法参数列表需要指定类型

​ b.绘制工具:

​ UML工具

在线绘制工具,比如 www.xiaopiu.com/

2.构造方法:

a.what:

​ 特殊的方法,没有方法返回值

b.语法:

修饰符    方法名(参数列表){
      方法体
}

​ (***)构造方法没有返回值类型;

​ 构造方法的方法名同所在的类名一致;

​ 构造方法在同一个类中可以同时出现多个,但是每一个与其他之间的参数列表是不同---重载;

​ (*****):每一个类都有构造方法,如果人为给出指定构造方法该无参构造方法消失

​ 建议:以后创建类的时候人为指定构造方法,即使是无参构造方法

c.作用:

​ 完成初始化,可以使用该功能进行创建对象的时候直接给属性赋值

3.方法重载:

a.what:

​ 在同一个类中,方法名相同,参数列表(参数个数,参数类型,类型顺序)不同都为重载,和返回值与修饰符无关;

​ (*)使用方便,一般方法重载在构造函数的使用体现最广;

class MyClass {
    int height;    
    MyClass() {
        System.out.println("无参数构造函数");        
        height = 4;    
    }
    MyClass(int i) {
        System.out.println("房子高度为 " + i + " 米");        
        height = i;    
    }
    void info() {
        System.out.println("房子高度为 " + height + " 米");    
    }
    void info(String s) {
        System.out.println(s + ": 房子高度为 " + height + " 米");    
    }
}

4.this关键字:

this代表当前调用者这个对象本身

a.调用属性

​ this.属性

​ 在构造函数的赋值中使用广泛

b.调用方法:

​ this.方法();

c.调用构造函数

​ this(); 表示该对象的无参构造方法

​ this(name); 表示该对象的该参数的构造方法;

5.static关键字:

​ static修饰的变量为静态变量;

​ static修饰的方法为静态方法;

​ 静态方法只能调用静态方法和静态变量;

​ 动态方法可以调用静态方法和动态方法,也可以调用静态变量和动态变量;

​ 在其他类中调用:

​ 类名.静态方法;

​ 对象.静态方法;

​ 对象.动态方法;