【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
**开源地址:https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB **
-
我们程序设计要追求高内聚,低耦合,高内聚就是类的内部数据操作细节自己完成,不允许外部干涉,低耦合,仅暴露少量的方法给外部使用
-
封装
-
通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。
-
记住这句话就够了:属性私有,get/set
代码理解
//Student 类
public class Student {
//属性私有
private String name;//姓名
private int id;//学号
private char sex;//性别
private int age;//年龄
//提供一些可以操作这个属性的方法!
//提供一些public的get、set方法
//get 获得这个数据
public String getName() {
return this.name;
}
//set给这个数据设置值
public void setName(String name) {
this.name=name;
}
//idea中 alt+insert 快捷键生成 eclipse 右键->source
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age>120||age<0) {
age=3;
}
this.age = age;
}
}
//测试类
public class test {
public static void main(String[] args) {
Student s = new Student();
s.setName(“张三”);
System.out.println(s.getName());//张三
s.setAge(200);
System.out.println(s.getAge());//3
}
}
扩展
为什么println什么都能输出?
原因:println实现了许多方法重载,点进源码可知
====================================================================
-
重要关键字 extends
-
java类中只有单继承,没有多继承
-
object是所有类的父类(所有的类都直接或间接继承Object类)
//父类
public class Father {
public void yichang() {
System.out.println(“留下了一亿遗产”);
}
}
//子类
public class Son extends Father{
}
//测试类
public class Test {
public static void main(String[] args) {
Son s=new Son();
s.yichang();
}
}
//打印结果 留下了一亿遗产
//意思就是Son都没有yichan这个方法,但是可以调用父亲的,原因就是继承了父类
//父类
public class Father {
protected String name=“父亲”;
public Father() {
System.out.println(“Father无参构造”);
}
//私有的东西无法被继承
public void print() {
System.out.println(“父亲1”);
}
}
//子类
//继承了Father类,会拥有它的所有方法
public class Son extends Father{
private String name=“儿子”;
public void print() {
System.out.println(“儿子1”);
}
public Son() {
//隐藏代码:调用了父类的无参构造
super();//要在第一行!!!!否则报错
System.out.println(“Son无参构造”);
}
public void test1() {
print();//儿子1
this.print();//儿子1
super.print();//父亲1
}
public void test(String name) {
System.out.println(name);//erzi
System.out.println(this.name);//儿子