javaSE_day8_构造方法_super关键字_final关键字_static关键字_内部类_访问权限和修饰符_代码块_自定义数据类型

1.构造方法

作用:用来给类的成员进行初始化操作

定义格式:权限  方法名(参数列表){ ... } //注意:方法的名字必须和类名完全一致,构造方法不允许写返回值类型,void也不能写

构造方法在什么时候执行呢:在new对象的时候,自动执行,且只运行一次,其他普通方法要调用才能执行

每个class必须拥有构造方法,构造方法不写也有。如果自己手写了构造方法,编译的时候就不会自动添加构造方法了。

2.super关键字

super()调用的是父类的空参构造

super(参数)调用的是父类的有参构造方法

子类中所有的构造方法的第一行有默认的隐式super()语句

3.final关键字

final是最终的意思,不可变,可以用来修饰类,类的成员,以及局部变量

final修饰类:不可被继承,但可以继承其他类

final修饰的方法:不可被覆盖,但父类中没有被final修饰的方法,子类覆盖后可以加final

final修饰的变量:为常量,这些常量只能赋值一次

4.static关键字(实现对象的共享数据)

static修饰成员变量:属于类,而不属于这个类中的某个对象

                                 多个对象在访问或修改static修饰的成员变量时,其中一个对象将static成员变量值进行了修改,其他对象中                                   的static成员变量值跟着改变,即多个对象共享同一个static成员变量

成员变量加static修饰的应用场景:对个对象之间有没有共性的数据

static修饰成员方法:跟着变量走,如果方法没调用过非静态成员,将方法定义为静态

static修饰的成员的访问方式:类名.静态成员方法名           类名.静态成员变量名

在同一个类中,静态成员只能访问静态成员

定义静态常量:public  static   final  数据类型  变量名=变量值;     //变量名全部大写,多个单词使用下划线连接

使用静态成员:不需要创建对象,直接类名.静态常量(或者静态方法)

注意:接口中的每个成员变量都默认使用public static final修饰。

           所有接口中的成员变量已是静态常量,由于接口没有构造方法,所以必须显示赋值。可以直接用接口名访问

5.内部类

概述:将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类。其他类也称为外部类。

什么时候使用内部类:在描述事物时,若一个事物内部还包含其他可能包含的事物,比如在描述汽车时,汽车中还包含这发动机,这时发动机就可以使用内部类来描述。

内部类的分类:内部类分为成员内部类与局部内部类。

成员内部类

定义格式:

class 外部类 {

修饰符 class 内部类 {

//其他代码

}

}

访问方式

外部类名.内部类名 变量名 = new 外部类名().new 内部类名();

局部内部类,定义在外部类方法中的局部位置

定义格式

class 外部类 {

修饰符 返回值类型 方法名(参数) {

class 内部类 {

//其他代码

}

}

}

访问方式

在外部类方法中,创建内部类对象,进行访问

6.访问权限

7.修饰符的使用

常用来修饰类、方法、变量的修饰符如下:

public 权限修饰符,公共访问, 类,方法,成员变量

protected 权限修饰符,受保护访问, 方法,成员变量

默认什么也不写 也是一种权限修饰符,默认访问, 类,方法,成员变量

private 权限修饰符,私有访问, 方法,成员变量

static 静态修饰符  方法,成员变量

final 最终修饰符   类,方法,成员变量,局部变量

abstract 抽象修饰符  类 ,方法

 

我们编写程序时,权限修饰符一般放于所有修饰符之前,不同的权限修饰符不能同时使用;

同时,abstract与private不能同时使用;

同时,abstract与static不能同时使用;

同时,abstract与final不能同时使用。

修饰能够使用的修饰符:

修饰类只能使用public、默认的、final、abstract关键字

使用最多的是 public关键字

public class Demo {} //最常用的方式

class Demo2{}

public final class Demo3{}

public abstract class Demo4{}

修饰成员变量能够使用的修饰符:

public : 公共的

protected : 受保护的

: 默认的

private :私有的

final : 最终的

static : 静态的

使用最多的是 private

public int count = 100;

protected int count2 = 100;

int count3 = 100;

private int count4 = 100; //最常用的方式

public final int count5 = 100;

public static int count6 = 100;

修饰构造方法能够使用的修饰符:

public : 公共的

protected : 受保护的

: 默认的

private :私有的

使用最多的是 public

public Demo(){} //最常用的方式

protected Demo(){}

Demo(){}

private Demo(){}

修饰成员方法能够使用的修饰符:

public : 公共的

protected : 受保护的

: 默认的

private :私有的

final : 最终的

static : 静态的

abstract : 抽象的

使用最多的是 public

public void method1(){}//最常用的方式

protected void method2(){}

void method3(){}

private void method4(){}

public final void method5(){}

public static void method6(){}//最常用的方式

public abstract void method7();//最常用的方式

8.代码块

局部代码块是定义在方法或语句中

特点:

以”{}”划定的代码区域,此时只需要关注作用域的不同即可

方法和类都是以代码块的方式划定边界的

构造代码块是定义在类中成员位置的代码块

特点:

优先于构造方法执行,构造代码块用于执行所有对象均需要的初始化动作

每创建一个对象均会执行一次构造代码块。

静态代码块是定义在成员位置,使用static修饰的代码块。

特点:

它优先于主方法执行、优先于构造代码块执行,当以任意形式第一次使用到该类时执行。

该类不管创建多少对象,静态代码块只执行一次。

可用于给静态变量赋值,用来给类进行初始化。

9.自定义数据类型的使用:

类作为方法参数时,说明要向方法中传入该类的对象

类作为方法返回值时,说明该方法要返回一个该类的对象。

抽象类作为方法参数时,说明要传入一个实现抽象类所有抽象方法的子类对象。

抽象类作为方法返回值时,说明需要返回一个实现抽象类所有抽象方法的子类对象。

接口作为方法参数时,说明该方法要传入一个接口实现类对象。

猜你喜欢

转载自blog.csdn.net/weixin_42062397/article/details/82984007