关于Java中修饰 类 , 对象, 方法,域(属性)的一些关键字

this : this是对象,是对象的别名,又称对象的引用;

    this的作用范围在方法中;当通过一个对象调用一个方法时,运行时系统会将当前对象的引用传递到该方法中。

   (一般我这样理解:this所在函数属于哪个对象,this就指向该对象)


访问限定词:public , protected , privated

   public:public修饰的方法和域在程序的任何地方都可以被访问,公有的方法可以看作是对象与外界的接口;

                     一个Java源程序中可以定义多个类,但是最多只能有一个类是public类;

                     一般地,该public类用于修饰入口函数main()。

   protected:被保护的方法或域可以被所在类的其他地方访问;被子类继承后,可以被子类中的其他方法直接访问;
                           在同一个包中,可以通过对象名直接访问;不是同一个包中的非子类,不能通过对象名直接访问。

   private:私有的域和方法只能被其所在类的方法访问或调用,在类体之外不能通过对象名直接访问,

                       私有域或方法具有最高的保护权限。


static

   修饰域:[访问限定词] static 返回值类型 域名[=初值]; 被static修饰的域称为类域或静态域;

       当一个类的所有对象的某个域或某几个域都有相同的值时,应该将这样的域声明为类域;比如,

                          某公司的雇员出勤情况,可以在雇员类中声明一个 count静态域,每个雇员签到就使count值增加1,

                          这样就避免了如果每个雇员对象都有一个自己的count,则count无法正确记录出勤人数的情况;

                          使得无论哪一个雇员对象改变count的值,其他对象都可以得到改编后的count值。(eclipse->Java基础)

                静态域可以通过对象名访问,可以被方法访问,更多的是通过类名(类名.静态域名)访问。

         修饰方法:static 返回值类型 方法(形参);通过 类名.方法名(实参) 访问; 静态方法一般用于访问静态域。

    修饰类:只能是作为某个类的内部类时,才能用static修饰,主类不能用static修饰。


super : super 表示当前类的直接父类

     访问继承自直接父类的域:super.域名

     调用当前类直接父类的方法:super.方法名(实参)

     调用直接父类的构造方法:super(实参); 该语句在子类的构造方法中必须是第一条语句。


final :

  final修饰类:final修饰的类称为最终类,形式:final class{ //........ };

        最终类不能派生子类,定义最终类的目的是不希望父类中的域被子类隐藏,

                             以及方法被子类重写,可以对类起到保护作用; 典型的最终类就是String类。

  final修饰方法: final修饰的方法称为最终方法,形式:访问限定词 [static] final 返回值类型 方法名(参数);

                             最终方法可以被子类继承,但不能被子类重写,从而保护子类方法

  final修饰域:final修饰的域称为最终域,又称为常量。常量定义形式:public static final 数据类型 域名=初值;


abstract :

  修饰类:abstract修饰的类称为抽象类,定义形式:abstract class 类名{ //.............. };

      抽象类中可以定义属性和行为,但是所描述的对象是不存在的,抽象的,所以抽象类不能生成对象实例;

                      抽象类不能用关键字final修饰

      使用抽象类可以将零散的,无关系的类归为一类。

  修饰方法:abstract修饰的方法称为抽象方法,定义形式:[访问限定词] abstract 数据类型 方法名([参数]);

      抽象方法只有方法的头部,没有方法体;抽象方法应该定义在父类中,便于为子类提供统一的行为;

                      父类派生出子类后,子类再对继承自父类的抽象方法进行定义;抽象方法一定不能用 final 修饰

      抽象类中可以有非抽象方法,也可以有抽象方法。但是,如果一个类中有抽象方法,该类必须定义成抽象类。

猜你喜欢

转载自www.cnblogs.com/kesheng/p/12368554.html
今日推荐