Java学习第八天

文章介绍了Java编程中的封装概念,展示了如何使用get和set方法操作私有属性。接着讨论了继承机制,包括如何调用父类的公共和私有方法。此外,还解释了super关键字的用途,以及在子类中如何调用父类的构造器和成员。最后,文章阐述了方法重写的原则和示例,强调了重写需在有继承关系的类之间进行,且方法名、参数列表和修饰符需保持一致。
摘要由CSDN通过智能技术生成

封装

private 为私有属性,但是java也提供了可以操作私有属性的方法,就是get、set方法

set:重新设置私有属性的值

get:获取设置后的值

package Demo04;

public class Student {
    // 私有属性
    private String name;
    private int age;

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }

    private String grade;

    // 提供一些可以操作私有属性的方法
    //get 获取值
    //set 设置值

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

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age > 120 || age < 0) {
            this.age = 3;
        } else {
            this.age = age;
        }
    }
}

set、get使用(可通过快捷键 AIT+INSTERT来快速生成set、get方法)

package Demo04;

public class Main {
    public static void main(String[] args) {
        Student student = new Student();
        student.setName("XY");
        System.out.println(student.getName());

        System.out.println("============");
        student.setAge(999);
        System.out.println(student.getAge());
    }
}

继承

创建一个per类,里面创建了公共方法及私有方法

package Demo05;

public class Per {
    public void say() {
        System.out.println("说话说话!!!");
    }

    private int mony = 1000000000;

    public int getMony() {
        return mony;
    }

    public void setMony(int mony) {
        this.mony = mony;
    }
}

类的继承调用

继承使用extends方法+需要继承的类名

1、公共方法可以调用

2、私有方法使用set重新赋值后,在使用get进行获取即可

package Demo05;

public class Stu extends Per {
    public static void main(String[] args) {
        //可直接调用公共方法
        Per per = new Per();
        per.say();
        // 私有方法使用get、set
        per.setMony(111);
        System.out.println(per.getMony());
    }
}

super

per类

package Demo05;

public class Per {
    protected String name="xiaoyu";
}

Stu类

package Demo05;

public class Stu extends Per {
    private String name = "xiaoyu11";

    public void test(String name) {
        System.out.println(name); // 肖雨
        System.out.println(this.name); // xiaoyu11
        System.out.println(super.name); // xiaoyu
    }
}
/*
super 调用的父类的构造方法
super 必须只能出现在子类的方法或构造方法中
super 和 this不能同时调用构造方法
 */

Main总方法

调用Stu的test方法

package Demo05;

import Demo04.Student;
//在java中都默认继承object类

public class Application {
    public static void main(String[] args) {
        //可直接调用公共方法
        Stu stu = new Stu();
        stu.test("肖雨");
    }
}

打印结果为:

肖雨

xiaoyu11

xiaoyu

得知:

1、name为Stu  test方法中接收到参数

2、this.name 是Stu类中的私有变量,就是调用自身的方法或变量

3、super.name 就是调用父类中的name变量

重写

per类

package Demo05;


public class Per {
    public  void test(){
        System.out.println("B>test");
    }
}

Stu

@Override表示重写父类方法(可通过AIT+INSTERT方法快捷执行)

package Demo05;

public class Stu extends Per {
    @Override
    public void test() {
        System.out.println("A>test");;
    }
}

AppLication

重写的条件

重写:需要有继承关系,子类重写父类的方法
1.方法名必须相同
2.参数列表必须相同
3.修饰符;范围可以扩大但不能搜小 pubilc>Protected>Default>private
package Demo05;

import Demo04.Student;
//在java中都默认继承object类

public class Application {
    public static void main(String[] args) {
        Stu stu = new Stu();
        stu.test(); // A>test


        // 父类的引用指向了子类
        Per per = new Stu();
        per.test(); // A>test
    }

    /*
    重写:需要有继承关系,子类重写父类的方法
    1.方法名必须相同
    2.参数列表必须相同
    3.修饰符;范围可以扩大但不能搜小 pubilc>Protected>Default>private

     */
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值