Java SE 进阶 day01

第一章 面向对象高级

01.static 关键字

1.static介绍:

static可以修饰成员变量和成员方法

2.static特点:

  1. 被修饰的成员是共享的,但是只存储一份
  2. 静态只能访问静态
  3. 随着类的加载而加载,优先于对象存在
  4. 可以用类名.调用

3.工具类:

被static修饰的方法,提高了代码的复用性和维护性

4.static的注意事项:

static中没有this关键字

02.继承

1.继承的介绍:

是类与类中的一种父子关系,当多个类之间产生了共性的关系,且这些关系中存在is…a…的关系时,就可以使用继承关系,这种关系建立之后,子类以调用父类中非私有的成员(私有成员可以被继承,只是不能直接使用)

2.继承中对成员变量的访问特点:

this访问子类成员变量,super访问父类成员变量

public class Fu{
	int num = 10;
}
class Zi extends Fu{
    int num = 20;
    public void method(){
        int num = 30;
        System.out.println(num); //30
        System.out.println(this.num);//20
        System.out.println(super.num);//10
    }
}

3.继承中对成员方法访问的特点:

  • 子父类中,出现相同的成员方法(方法名,参数,返回值),在子类对象中调用该方法,则调用的是子类中的方法
  • 原因:子类对该父类方法进行了重写

4.方法重写(override)

  1. 当子类对父类中的方法逻辑感到不适用时,可以对方法进行重写(又称为方法覆盖,方法覆写)
  2. 子类进行方法重写时,需要保证方法的方法名,参数,返回值完全一致,可以用注解@Override来检测是否重写
  3. 注意:
  • 父类中私有方法子类无法重写
  • 子类中重写的方法访问权限必须大于或等于父类

5.权限修饰符

修饰符名称同一个类中同一个包中不同包的子类不同包的无关类
private
(default)
protected
public

6.Java中的继承特点:

不可以多继承,但是可以多层继承

7.继承中构造方法的访问特点:

  1. 父类的构造方法子类无法继承,只能自己写,因为构造方法名必须和类名保持一致

    public class Fu{
      public Fu (){
        }
    }
    public class Zi extends Fu{
        public Zi(){
        }
    }
    
  2. 子类对象初始化之前必须完成父类的初始化,因为可能会用到父类的数据,只要能访问到构造方法,就可以完成初始化操作,而在所有构造方法中 (Object类除外),都默认隐藏着一句话 super();因此,子类可以通过这句话来访问父类的空参构造方法,从而初始化父类.

  3. 问题:但是当父类没有空参构造时,子类的super();怎么办?

    回答:子类可以将所需要的数据,通过有参构造方法接收,其中父类有的数据,就通过super();交给父类完成初始化

public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

public class Student extends Person {

    private int score;

    public Student() {

    }

    public Student(String name, int age, int score) {
        super(name, age);
        this.score = score;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
}

public class Test {
    public static void main(String[] args) {
        Student stu = new Student("阿芷",23,100);
        System.out.println(stu.getName() + "---" +
                           stu.getAge() + "---" + stu.getScore());
    }
}

8.this和super关键字

this关键字调取本类成员,super关键字调取父类成员

this关键字和super关键字不可以共存

03.final关键字

1.final关键字特点:

  1. final关键字可以修饰类,方法,变量,被final修饰的类不可以被继承,被final修饰的方法不可以被重写,被final修饰的变量不可以被修改,所以又被称为常量.

    • 常量的命名规范:

    • 一个单词:所有字母大写
      MAX
      PI

    • 多个单词:所有字母大写,中间使用 _ 分隔
      MAX_VALUE
      MIN_VALUE

  2. 被final修饰的基本数据类型是数据值不可以被修改

  3. 被final修饰的引用数据类型是地址值不可以被修改

  4. 被final修饰的变量完成初始化的时机:构造方法完成前.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值