封装
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
*/
}