面向对象——关键字

来源:互联网 发布:mysql三张表关联查询 编辑:程序博客网 时间:2024/06/07 07:18

                  持续整理中……

【private】——

私有的数据只在本类中有效。其他程序创建对象是无法直接访问的。

权限修饰符,用于 修饰成员(成员变量 和成员函数),注意 一定是 ——>成员变量 成员函数。

【this】——

            当成员变量和 局部变量同名的时候,为了区分,可以使用一个关键字来完成。

            this :代表的是一个对象;代表那个对象呢?那个对象调用this所在的函数,this就代表那个对象。

            this 就是当前对象的一个引用。

            this :

                     表现形式1:当局部变量和成员变量同名时,可以用this 来区分。

                     表现形式2 : 构造函数之间的调用可以使用this关键字,后面跟上小括号,指定具体的实参即可明确要调用的构造函数。

 

            特殊情况:注意:调用本类中构造函数的this语句必须定义在构造函数的第一行。 因为初始化动作要先完成。(?????)

       【this 什么时侯用:】

               当定义功能时,功能内部使用到了调用该功能的对象。这时就用this来表示。

 /*

 需求:在Person类中定义一个比较方法,判断是否是同龄人。

  明确结果:boolean;

  明确未知内容:Person因为是一个任意一个Person对象比较其中的年龄。

*/

【代码体现】

class Person{private int age;private String name;Person(){System.out.println("Person run");}Person(String name){this.name = name;}Person(String name , int age){this.name = name ;this.age = age;}public void setName(String name){this.name = name ;}public String getName(){return this.name;}public void speak(){System.out.println(this.name + "——" + this.age);}public void show(){this.speak();}}class thisDemo {public static void main(String[] args) {Person p = new Person("wangwu" , 23);p.show();System.out.println("Hello World!");}}

【static】——

       对象的特有数据不能被static ,只有当对象有 公有数据 可以 被 static。

             【比喻】——饮水机 公用——static ,杯子自己用自己的

【static使用注意事项:】

 

1. 静态方法只能调用静态成员,不能调用非静态成员。

              非静态方法可以调用静态成员,也可以调用非静态成员;

2. 在静态方法中不允许出现 this , super 关键字。

       this代表对象,而静态方法执行时还没有对象呢!

3. 主函数是静态的。静态是有访问局限性的,只能访问静态的内容。

      

【调用成员有两种方式:】

       1.类名调用(必须保证调用的是静态成员); 类名.方法();

       2.对象调用   new  对象().方法();

【静态成员变量 和 非静态成员变量的区别】

1. 非静态成员变量 又称为实例变量;

       静态成员变量又称为类变量;

2. 非静态成员变量,随着对象的创建而存在,随着对象的消失而消失;

       静态成员变量,随着类的加载而存在,随着类的消失而消失。

3. 非静态变量存在于对象堆内存中,

       静态变量存在于方法区中;

4. 非静态变量只能被对象所调用;

       静态变量可以被类名调用,也可以被对象调用。

【静态什么时候用:】 静态的数据放在方法区,随着类的加载而加载,随着类的消失而消失;   

【1. 】成员变量是否需要被static修饰呢?

        该成员变量的值是否每一个对象相同,是,用static修饰;不是,不用static修饰,让这些存储到每个对象中。

【2.】成员函数是否需要被静态修饰呢?

        当函数中访问到了对象的特有属性时,该函数不能被静态修饰。如果函数中没有访问到对象的特有属性,就可以被静态修饰。

【注意】

如果一个类中定义的方法都是静态的,说明这个类是不需要对象的。

       所以要在本类中加入一些强制措施。——构造函数;

       private Test(); // 将构造函数私有化。

【extends】——继承,一个类只能继承一个类,但可以分层继承。

【interface】——定义接口

定义格式:

interface Inter

{

//接口成员

常见接口成员:并且都有固定修饰符;

1.常量; public static final int num = 3

常量有固定的修饰符: public static final ;如果忘记写final会自动加上;

全局常量;

2.抽象方法;

固定修饰符:public abstract ;

}

【implements】——实现接口,后面写:接口名,可以写多个。

【super】——

【super:】代表的是父类。

       用法和this相似。

       this代表本类对象的引用。

       super代表父类所属的空间。

 

【final】

【final关键字的特点】

              1. final是一个修饰符,既可以修饰类,又可以修饰方法,还可以修饰变量;

              2. final修饰的类不可以被继承。

              3. final修饰的方法不可以被覆盖。

              4. final修饰的变量是一个常量,只能赋值一次。并且这个常量是一个显式赋值的,默认的值不能修饰。

 

       【final有啥用】——为了将固定的一些数据方便使用,会给这些数据起一个容易阅读的名称。

       【书写】为了防止名称存储的数据改变,用final修饰,一般为final修饰的变量名称都是大写字母组成,如果有多个单词,

       每个单词之间用下划线分隔。

       【注意】——final修饰的显式的赋值,不能修饰默认的值。

 

       【final】——在开发时,一旦程序中有出现固定的数据,一定要将其用一个容易阅读的名称存储,并final修饰。

 

【throws 和throw两者区别】

throws用在函数上,用于功能声明异常,后面抛出的是异常类可以抛出多个,只要用逗号隔开即可。

throw只能用在函数内,用于抛出异常对象,额外特点,一旦执行,具有结束函数的功能。


补充:

1. Protected :

对超类的protected 成员的保护介于对访问public 成员的保护 和 对访问 private 成员的保护之间。只有超类的方法,子类的方法 以及 同一个 包的其他类的方法,才能访问 超类的 protected 成员 (protected 成员有 包访问权限)



2. Instanceof

a) 在进行子类特有方法使用时,要进行向下转型,转型前一定要做判断。否则容易发生 ClassCastException .

b) 判断引用类型,要使用一个关键字完成。关键字—— instanceof 

c)  使用方法: 对象  instanceof  类型

d) 这个判断是向下转型前的健壮性判断。

【应用举例:】

if (a instanceof Cat){

Cat t = (Cat )a;

c.catchMouse();

}


3. final

a) 声明为 final 的变量,,在声明之后不能被修改,并且必须在声明时进行初始化。

b) 声明为final的方法不能在子类中被覆盖,声明为 static 或 private 的方法是隐式的final方法。因为 final 方法的定义永远不能改变,编译器会在所有 出现 final方法调用的地方,用方法定义的扩展代码替换 final 方法调用的语句,这种技术叫做内联代码。

c) 声明为 final 的类不能是超类。Final 类中的所有方法都是 隐式的 final 方法。

d) 声明一个 final 引用意味着这个 引用 始终指向同一个对象,然而,并不影响引用所指向的对象—— 对象的数据仍然可以被修改!


notice

1. 编译器能确定是否要内联 final方法调用,并且会内联那些简单短小的final方法。内联 不会违背 封装和 信息隐藏,但确实可以提高性能,因为 它避免了方法调用的开销。

2. 被声明为 final 的类不能在派生子类。每个final类中的方法都是隐式的final方法。

3. 在某些情况下,出于安全 与 性能 的考虑,将类声明为 final 是很重要的。





原创粉丝点击