java中的一些关键字的介绍

版权声明:本文为北风梁雪原创 https://blog.csdn.net/qq_43797491/article/details/86655171
  • 访问控制符
    一: 成员(成员变量或成员方法)访问权限共有四种:
    1、public 公共的
    可以被项目中所有的类访问。(项目可见性)
    2、 protected 受保护的
    可以被这个类本身访问;同一个包中的所有其他的类访问;被它的子类(同一个包以及不同包中的子类)访问
    3、default/friendly 默认的/友好的(包可见性)
    被这个类本身访问;被同一个包中的类访问。
    4、private 私有的
    只能被这个类本身访问。(类可见性)
    二、类的访问权限只有两种
    1、public 公共的
    可被同一项目中所有的类访问。 (必须与文件名同名)
    2、default/friendly 默认的/友好的
    可被同一个包中的类访问。
    来通过一个表格看一下:
同一个类 同一个包中 子类 所有类
private
default
protected
public
  • this
    一、this的作用:
    1、this表示的是当前对象本身,
    2 、更准确地说,this代表当前对象的一个引用。
    二、 普通方法中使用this:
    1、区分类成员属性和方法的形参.
    2、调用当前对象的其他方法(可以省略)
    3、位置:任意
    三、构造方法中使用this:
    1、使用this来调用其它构造方法
    2、位置:必须是第一条语句
    四、this不能用于static方法。

    下面一段代码来看一下:
public class TestThis {
int a,b,c;
TestThis(){
System.out.println("正要new一个Hello对象");
}
TestThis(int a,int b){
//Hello(); // //这样是无法调用构造方法的!
this(); //调用无参的构造方法,并且必须位于第一行!
a = a;//这里都是指的局部变量而不是成员变量
this.a = a;//这样就区分了成员变量和局部变量. 这种情况占了this使用情况的大多数!
this.b = b;
}
TestThis(int a,int b,int c){
this(a,b); //调用无参的构造方法,并且必须位于第一行!
this.c = c;
}
void sing(){}
void chifan(){
this.sing(); //sing();
System.out.println("你妈妈喊你回家吃饭!");
}
public static void main(String[] args){
TestThis hi = new
  • super
    1、 super是直接父类对象的引用。
    2、可以通过super来访问父类中被子类覆盖的方法或属性。

    一段代码来看下:
public class Test {
public static void main(String[] args) {
new ChildClass().f();
}
}
class FatherClass {
public int value;
public void f(){
value = 100;
System.out.println
("FatherClass.value="+value);
}
}
class ChildClass extends FatherClass {
public int value;
public void f() {
super.f();
value = 200;
System.out.println
("ChildClass.value="+value);
System.out.println(value);
System.out.println(super.value);
}
}
  • static
    一、在类中,用static声明的成员变量为静态成员变量 ,或者叫做: 类属性,类变量:
    1、 它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化,
    2、 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!
    3、可以使用”对象.类属性”来调用。不过,一般都是用“类名.类属性”
    二、 static变量置于方法区中:
    1、 用static声明的方法为静态方法
    2、 不需要对象,就可以调用(类名.方法名) • 在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。
    3、 静态方法不能以任何方式引用this和super关键字

    一段代码来看下:
public class TestStatic {
int a;
static int width;
static void gg(){
System.out.println("gg");
}
void tt(){
System.out.println("tt");
}
public static void main(String[] args){
TestStatic hi = new TestStatic();
TestStatic.width = 2;
TestStatic.gg(); //gg();
hi.gg(); //通过引用也可以访问static变量或static方法。不过,一般还
是使用类名.static成员名来访问。
gg();
}
}
  • final
    final可以用来修饰变量,方法,类。
    1、修饰变量:变量一旦被初始化便不可改变,相当定义了一常量。
final int x=3; 
x=4;

2、修饰方法:final方法是在子类中不能被覆盖的方法

final returnType methodName(paramList){
...} 
final void eat() { …
 }`

3、修饰类:final类是无法被任何类继承的。

 final class finalClassName{ ...
  } 
  final class Person{ …
   }
  • abstract
    1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。
    2,abstract修饰方法,会使这个方法变成抽象方法,声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。
    3.abstract修饰符在修饰类时必须放在类名前。
    4.abstract修饰方法就是要求其子类覆盖(实现)这个方法。调用时可以以多态方式调用子类覆盖(实现)后的方法,也就是说抽象方法必须在其子类中实现,除非子类本身也是抽象类。
    5.父类是抽象类,有抽象方法,子类继承父类,并把父类中的所有抽象方法都实现(覆盖),抽象类中有构造方法,是子类在构造子类对象时需要调用的父类(抽象类)的构造方法。

好了,一些Java的关键字就介绍到这,有什么疑问可以留言!

猜你喜欢

转载自blog.csdn.net/qq_43797491/article/details/86655171