Java笔记1(继承,包(package),导包import ,权限修饰符 ,状态修饰符,this ,封装)

继承

1、子类的特点

  • 子类中可以有父类的内容
  • 子类还可以有自己特有的内容

2、在子类方法中访问一个变量

  • 1、首先在子类局部范围内找
  • 2、没有就在子类成员范围找
  • 3、再没有就在父类范围中找
  • 4、如果都没有就报错(不考虑父亲的父亲)

3、 super

public class Fu {
    public int age = 40;
}
public class Zi extends Fu{
    public int age = 20;

    public void show(){
        int age = 30;
        System.out.println(age);
        //如果访问本类的成员变量age,怎么办呢?
        System.out.println(this.age);
        //访问父类的成员变量age,怎么办呢?
        System.out.println(super.age);
    }
}
public class Demo {
//测试类
    public static void main(String[] args) {
        Zi z= new Zi();
        z.show();
    }
}

在这里插入图片描述

4、继承中构造方法的访问特点

public class Fu {
    public Fu(){
        System.out.println("Fu中无参构造方法被调用");
    }
    public Fu(int age){
        System.out.println("Fu中有参构造方法被调用");
    }
}
public class Zi extends Fu{

    public Zi(){
        //默认有super()
        //super();
        System.out.println("Zi中无参构造方法被调用");
    }
    public Zi(int age){
        //默认有super()
        //super();
        System.out.println("Zi中有参构造方法被调用");
    }
}
public class Demo {
    public static void main(String[] args){
        Zi Z = new Zi();
        Zi z2 = new Zi(20);

    }
}

在这里插入图片描述
1、为什么子类的构造方法默认都会访问父类中的无参的构造方法?
在这里插入图片描述
2、如果父类中没有无参构造方法,只有带参构造方法,怎么办呢?
在这里插入图片描述

5、 继承中成员方法访问的特点

public class Fu {
    public void show(){
        System.out.println("Fu中的show方法被调用");
    }
}
public class Zi extends Fu{
    public void method(){
        System.out.println("Zi中的method方法被调用");
    }
    public void show(){
        super.show();//调用父类中的show方法
        System.out.println("Zi中的show方法被调用");
    }
}
public class Demo {
    public static void main(String[] args) {
        Zi z = new Zi();
        z.method();
        z.show();

    }
}

在这里插入图片描述
1、特点
在这里插入图片描述

6、方法重写

public class Phone {
    public void call(String name) {
        System.out.println("给" + name + "打电话");

    }
}
public class NewPhone extends Phone{
    @Override//检查重写父类方法的正确性
    public void call(String name) {
        System.out.println("开启视频功能");
        //System.out.println("给" + name + "打电话");
        super.call(name);

    }
}
//测试类
public class PhoneDemo {
    public static void main(String[] args) {
        Phone  p = new Phone();
        p.call("周杰伦");
        System.out.println("--------");
        NewPhone np = new NewPhone();
        np.call("周杰伦");
    }
}

在这里插入图片描述

1、方法重写的概述

  • 子类中出现了和父类一模一样的方法声明

2、方法重写的应用
在这里插入图片描述
3、@Override

  • 一个注解
  • 可以帮助我们检查重写方法的方法声明的正确性

7、方法重写的注意事项

在这里插入图片描述

8、继承的注意事项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

包(package)

在这里插入图片描述

导包import

package 导包import1;

public class Teacher {
    public void Teach(){
        System.out.println("教书育人");
    }
}

package 导包import2;

import 导包import1.Teacher;//导包

public class Demo {
    public static void main(String[] args) {
        Teacher t = new Teacher();
        t.Teach();
    }
}

在这里插入图片描述

权限修饰符

在这里插入图片描述

状态修饰符

1、final

在这里插入图片描述

2、final修饰局部变量

在这里插入图片描述

3、static

在这里插入图片描述

package 状态修饰符static;

public class Information {
    public String name;
    public int age;
    public static String school;
    public void show(){
        System.out.println(name+','+age+','+school);
    }
}

package 状态修饰符static;

public class Demo {
    public static void main(String[] args) {
        Information.school = "juxty";
        Information I = new Information();
        I.name = "周杰伦";
        I.age = 30;
        I.show();
        Information I2 = new Information();
        I2.name = "周";
        I2.age = 50;
        I2.show();
    }
}

在这里插入图片描述

4、static访问特点

在这里插入图片描述

this

在这里插入图片描述


package 关键字this;

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

    //    public void setName(String n) {
//        name = n;
//    }
    public void setName(String name) {
        this.name = name;//后面一个为局部变量
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void show() {
        System.out.println(name + ',' + age);
    }
}

package 关键字this;

public class Demo {
    public static void main(String[] args) {
        Student s = new Student();
        s.setName("周杰伦");
        s.setAge(39);
        s.show();
    }
}

封装

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值