其他分享
首页 > 其他分享> > Class

Class

作者:互联网

类的声明

使用关键字extends用于继承类,使用关键字implements用于实现接口

class MyClass extends MySuperClass implements MyInterfaces1, MyInterface2 {
    // fields, constructors, and 
    // method declarations
}

类还可以使用修饰符public, private, protected, 但是private只能用于嵌套类


方法的重载

Java通过方法的签名(signatures)来区分类中不同的方法,因此可以声明同样名字的方法(只要它们的参数类型及个数不同即可),即重载(overload)

方法的签名 = 方法名 + 方法的参数。 返回值类型不是签名的一部分!

⚠️ 方法被重载时,编译器依据传入的参数个数及类型来确定具体哪个方法被调用


构造函数

自定义类可以不提供构造函数,但是如果该自定义类存在子类的,必须至少提供一个默认的无参的构造函数

当子类没有声明构造函数的时候,编译器会默认调用其父类的默认的无参的构造函数。如果父类中不存在该无参构造函数,那就会有编译错误


初始化块

一个类可以有多个静态初始化块,编译器按照静态初始化块的顺序执行。

Java编译器会将实例初始化块放入每一个构造函数,因此这种方法可以在多个构造函数之间共享代码

class InitializationBlock {
	/* 静态初始化块 */
    static {
    	/* 初始化静态变量 */
    }
    /* 实例初始化块 */
    {
        /* 初始化实例变量 */
    }
}

可变参数

可变参数(varargs)是指方法声明中用...声明的参数变量,它不限定参数的个数,使用起来时类似数组

public Polygon polygonFrom(Point... corners) {
	int numberOfObjects = corners.length;
    double squareOfSide, lengthOfSide;
    squareOfSide = ( corners[1].x - corners[0].x ) * ( corners[1].x - corners[0].x ) 
                 + ( corners[1].y - corners[0].y ) * ( corners[1].y - corners[0].y ) ;
    lengthOfSide = Math.sqrt(squareOfSide);
}

创建对象

虽然创建对象很简单,但是语句Point point = new Point(23, 40);里面有大文章


访问修饰符

modifier Class Package SubClasss Global
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N

标签:初始化,Point,corners,编译器,方法,Class,构造函数
来源: https://www.cnblogs.com/thecolorfulday/p/16332432.html