Java 封装 get/set
封装
封装:即数据的隐藏。通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为数据的隐藏。总而言之:属性私有,get/set
快捷键:按alt+insert 可以直接生成get、set方法。
get/set程序代码
package com.oop.demo04;
public class Student {
private String name;
private int id;
private char sex;
private int age;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age > 120 || age < 0) {
this.age = 3;
}else{
this.age = age;
}
}
}
Application.java 运行的类
package com.oop;
import com.oop.demo04.Student;
/*
封装的作用:
1.提高程序的安全性,保护数据
2.隐藏代码的实现细节
3.统一借口
4.系统可维护增加了
*/
public class Application {
public static void main(String[] args) {
Student s1 = new Student();
s1.setName("舒寒");
System.out.println(s1.getName());
s1.setAge(99);
System.out.println(s1.getAge());
}
}
运行代码:舒寒
99
继承
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
extends的意思是“扩展”,子类是父类的扩展。
Java中只有单继承,没有多继承。
继承的程序代码
package com.oop.demo05;
public class Person {
public int money = 10_0000_0000;
public void say(){
System.out.println("说了一句话");
}
}
package com.oop.demo05;
public class Student extends Person{
}
package com.oop;
import com.oop.demo05.Student;
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.say();
System.out.println(student.money);
}
}
运行的结果:
说了一句话
1000000000
Super
子类
package com.oop.demo05;
public class Student extends Person{
public Student() {
//隐藏代码:调用了父类的无参构造
super();//调用父类的构造器,必须要在子类构造器的第一行
System.out.println("Student无参执行了");
}
private String name = "zhuaishaoye";
public void print(){
System.out.println("Student");
}
public void test1(){
print();
this.print();
super.print();
}
public void test(String name){
System.out.println(name);
System.out.println(this.name);
System.out.println(super.name);
}
}
父类
package com.oop.demo05;
public class Person {
public Person() {
System.out.println("Person无参执行了");
}
protected String name = "shuhang";
public void print(){
System.out.println("Person");
}
}
Application
package com.oop;
import com.oop.demo05.Student;
public class Application {
public static void main(String[] args) {
Student student = new Student();
// student.test("拽少爷");
// student.test1();
}
}
运行结果:Person无参执行了
Student无参执行了
注意点:
super注意点:
1.super调用父类的构造方法,必须在构造方法的第一个
2.super必须只能出现在子类的方法或者构造方法中。
3.super 和this 不能同时调用构造方法;
VS this:
代表的对象不同:
this: 本身调用者这个对象
super:只能在继承条件才可以使用
构造方法:
this();本类的构造
super();父类的构造!