一、变量(属性和局部变量)

    属性 

             定义在类的大括号中

    局部变量

              定义在类的方法(形参,方法体),构造器(形参,构造器内部),代码块中

    两者之前的不同

            1. 声明位置的不同

            2. 权限修饰符:

                        属性可以用private、缺省、protected、public进行修饰

                        局部变量不能被权限修饰符进行修饰

            3. 默认初始化的情况不同:

                        属性在定义的时候不用显示赋值,因为它会默认初始化(参考注意点总结一,数组元素的默认初始化)

                        局部变量不会默认初始化,声明的时候必须显示赋值( 形参在调用时赋值即可 )

            4. 内存中的位置不同

                        属性(非static):在堆空间中        static的在方法区的静态域中

                        局部变量:在栈空间中

 

二、方法

    如果方法没有返回值,那么return的作用就是结束该方法。

 

    方法的重载

            同名不同形参(只看方法名和形参列表)

    可变形参

            1. 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。换句话说,二者不能共存。也就是不能构成重载(可以重写)

            2. 可变个数形参在方法的形参中,必须声明在末尾

            3. 可变个数形参在方法的形参中,最多只能声明一个可变形参。

            4. 当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个...

 

三、封装性

    什么是封装性

            简单来说就是利用四种权限修饰符,来修饰类,属性,方法,达到把该隐藏的隐藏起来,该暴露的暴露出来的效果

    封装性的体现

            1. 将类的属性xxx私化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值

            2. 不对外暴露的私有的方法

            3. 单例模式(将构造器私有化)

            4. 如果不希望类在包外被调用,可以将类设置为缺省的

    作用范围

类型 同一个类同一个包下不同包之间同一个项目下
pirvate      可以   
缺省(默认)    可以    可以  
protected     可以    可以    可以 
public      可以    可以    可以      可以

      说明

                    4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类
            修饰类的话,只能使用:缺省、public

 

四、构造器(构造方法)

    作用

            1. 创建对象(new 一个对象实体)

            2. 初始化对象的信息

    说明

            1. 如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器

            2. 一个类中定义的多个构造器,彼此构成重载

            3. 一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器(没有空参构造器了)

            4. 一个类中,至少会有一个构造器

 

五、This关键字

    可以调用的结构:属性,方法,构造器

    理解: 当前对象的   或者    当前正在创建的

    this调用构造器

            格式:  this( 形参 ) ;      来调用当前对象中的构造器

            1. 我们在类的构造器中,可以显式的使用"this(形参列表)"方式,调用本类中指定的其他构造器

            2. 构造器中不能通过"this(形参列表)"方式调用自己

            3. 如果一个类中有n个构造器,则最多有 n - 1构造器中使用了"this(形参列表)",因为肯定有一个是super(),来加载父类种的结构

            4. 必须声明在构造方法体内的首行

            5. 构造器内部,最多只能声明一个"this(形参列表)",用来调用其他的构造器

 

六、Import的使用

    1. 在源文件中显式的使用import结构导入指定包下的类、接口
    2. 声明在包的声明和类的声明之间
    3. 如果需要导入多个结构,则并列写出即可
    4. 可以使用"xxx.*"的方式,表示可以导入xxx包下的所结构
    5. 如果使用的类或接口是java.lang包下定义的,则可以省略import结构
    6. 如果使用的类或接口是本包下定义的,则可以省略import结构
    7. 如果在源文件中,使用了不同包下的同名的类,则必须至少一个类需要以全类名的方式显示。
    8. 使用"xxx.*"方式表明可以调用xxx包下的所结构。但是如果使用的是xxx子包下的结构,则仍需要显式导入
    9. import static:导入指定类或接口中的静态结构:属性或方法。