java面向对象常用关键字讲解_Java 面向对象常见关键字

【权限修饰符】

1.对 class 的权限修饰只可以使用 public 和 default(缺省),public 类可以在任何地方被访问,default 类仅可呗同一个包内部的类访问

2.对类的成员的权限修饰有 public/protected/private 三种,用于限定对象对该类成员的权限访问

【this】

1)当成员变量与局部变量名字相同时,成员变量会被隐藏,此时若想在成员方法中使用成员变量,需要使用关键字 this,this 可视为当前对象或当前正在创建的对象class A{

int a;

private void setNum(int a){

this.a=a;

}

}

2)可以使用 this 关键字做返回值public A getA(){

return this;

}

3)可以通过 this() 来显式的调用当前类重载的指定的构造器class A(){

private int a;

private String b;

public A(){

a=1;

b="abc";

}

public A(int a){

this();

this.a=2;

}

public A(int a,String b){

this(a);

this.b=b;

}

}

4)在由 static 修饰的静态方法中,不能出现 this

【import】

import 关键字用于加载已定义好的类或包,被加载的类可供本类调用其方法与属性。import 包名1.[包名2. ...].类名|*;

当存在多个包名时,各个包名间用 . 来间隔,同时包名与类名间也用 . 来间隔,也可用 * 来表示包中所有的类

【static】

由 static 修饰的属性、方法、初始化块、内部类统称静态结构,均存放在静态域中,一经定义其内存地址不会改变,是可被整个类所共享的。

静态结构的生命周期早于非静态结构,同时被回收也晚于非静态结构。

1)static 变量

① 随着类的加载而被加载,早于对象,且仅被加载一次

② 由类创建的所有对象均共享这一属性

③ 当其中一个对象对此属性进行修改后,其他对象对此属性的调用值为被修改后的值

④ 可以通过 类.属性 的形式调用,也可通过 对象.属性 的形式调用

2)static 方法

① 随着类的加载而被加载,早于对象,且仅被加载一次

② 由类创建的所有对象均共享这一方法

③ 内部可以调用静态属性和静态方法,而不能调用非静态属性和非静态方法(非静态方法内部可以调用静态属性和静态方法)

④ 可以通过 类.方法 的形式调用

【final】

1)final 变量

final 修饰变量时,一旦获得初值就不可再被改变。在其修饰成员变量时,若未在定义成员变量时指定初始值,则成员变量的值会一直是各类型的初始值(0/false/null);在其修饰局部变量时,若未在定义成员变量时指定初始值,可在后面代码中对该局部变量赋值,但只能赋值一次,若在定义成员变量时指定初始值,则不可再赋值

2)final 类

用 final 修饰的类称为 final 类,该类不能被继承,不可拥有子类,一些重要的类常声明为 final 类(Java 提供的 System类、String 类等)

3)final 方法

用 final 修饰的方法称为 final 方法,其不可被重写,若想不允许子类重写父类的某个方法,可将该方法作为 final 方法

4)一般使用 static final 来修饰全局常量

【extends】

当类需要继承时,通过 extends 来显式地指明其父类[public/abstract/final] class 子类名 extends 父类名{

类体

}

【super】

1)调用父类的构造方法

当子类需要显式调用父类的构造方法时,需通过 super 来调用super([参数列表]);

要注意的是,在构造器内部,super([参数列表]); 与 this([参数列表]); 只可出现一个,若不显示的调用此两者,默认调用父类空参的构造器

2)操作被隐藏的成员变量与被覆盖的成员方法

若想在子类中操作父类被隐藏的成员变量和被覆盖的成员方法,需要使用 super 来操作super.成员变量;

super.成员方法([参数列表]);

注:若子类声明了一个与父类成员变量同名的成员变量,此时称子类成员变量隐藏了父类成员变量;若子类声明了一个与父类成员方法同名的成员方法,此时称子类成员方法覆盖了父类成员方法。

3)在由 static 修饰的静态方法中,不能出现 super

【abstract】

当需要声明抽象类时,需要使用 abstract 来声明,抽象类不能被实例化,可以没有抽象方法。abstract class 类名 {

类体

}

抽象方法亦需用 abstract 修饰,有抽象方法的类一定是抽象类,抽象方法没有方法体,只保留了方法的功能,其具体实现交给继承抽象类的子类,在子类中重写此抽象方法。

若子类继承抽象类,当重写了全部的抽象方法时,则此类是一个实体类,可以实例化;当没有重写全部的抽象方法时,则此类中仍有抽象方法,意味着该子类必须声明为抽象类。abstract 方法名 (参数列表);

不能用 abstract 来修饰属性、构造器、private 方法、static 方法、final 方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值