Java类中的常用关键字介绍

 
public class Bicycle {
        
    private int cadence; //field
    private int gear;
    private int speed;
    static final int test = 1;
        
    public Bicycle(int startCadence, int startSpeed, int startGear) {
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;
    } //这是一个构造函数,注意构造函数与成员方法不同,不需要声明返回值。
      //且与Class名同名。
        
    public int getCadence() {
        return cadence;
    }
        
    public void setCadence(int newValue) {
        cadence = newValue; //当没有返回值时用void,且不需要return语句。
    } //成员方法必须声明返回值类型,或是void
}

1,class前可以使用modifiler:public and no modifiler (package private).

members前可以使用modifiler:public, private, protected and no modifiler.

这些modifiler控制的是从其他地方访问类或members的access权限,分为:从class本身,从本class所在的package中的其他class,从其他package中的subclass,从其他地方。

详细介绍见链接:

https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

2,this关键字

由上例可见,this.x是对成员变量的引用,this()是对constructor的引用。

public class Rectangle {
    private int x, y;
    private int width, height;
        
    public Rectangle() {
        this(0, 0, 1, 1);
    }
    public Rectangle(int width, int height) {
        this(0, 0, width, height);
    }
    public Rectangle(int x, int y, int width, int height) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
    }
    ...
}

3,static 关键字

field前可以使用static关键字,该关键字意味着:这个field不在属于object,而是属于class。这样的变量不再属于各个实例化的对象,而是被这些对象所共有,在内存中使用一个空间。由于static field属于class,因此不实例化类就可以直接使用它,同时实例化出来的所有object也都可以使用它。

method前也可以使用static,且也可以不实例化即可直接引用:className.memberName(); or objectName.memberName();

通常用static methods访问static fields。

4, static + final

static final int test = 1;则定义了一个常量constant。这样test的值不允许被修改。

5, method signature

同一class中的多个method方法名可以重复,只要parameter的类型或者个数不同即可(parameter 名字不同步行),method name + parameters成为method signature。plus, 只是return type不同,并不能区分method。

6, constructor

构造函数,通常是public的。constructor可以有多个,只要method signature不同即可。也可以使用父类的constructor。如果没有提供contructor,complier会提供一个默认的,无参数的constructor。

7, Method的返回值

public Number returnANumber() {
    return this.number;
}

method中用return 关键字指定method的返回值。method的返回值通常是int,string这样的primitive type,也可以无返回值void。当method的return type不是primitive type,而是自定义的class时(如上例中的Number),method返回的value可以是一个Number对象,或是Number类的子类的对象。

return type也可以是一个interface,这时method返回值必须是实现了该接口的对象。

你可能感兴趣的:(Java基础知识)