封装
1.封装:
1.封装的含义:
1.包装,例如我们将一些常用的功能进行抽取,将这些功能定义成一个方法。
2.面向对象特征中的封装:隐藏。对类中的成员对外是否可见进行控制。
2.封装的概念:
将类的某些信息隐藏在内部,不允许外部程序直接访问,而是通过该类封装的方法来实现对隐藏信息的访问和操作。(安全性)好处在于:方便添加控制语句,修改实现等
3.封装案例:
1.将类中属性私有化
2.将某些方法私有化
Java设计模式(固定套路,模板,算法):
单例模式:单个实例,在系统中,想让某个类只能创建一个对象。
public class MakeOne {
static MakeOne makeOne=null;
//私有化构造方法无法直接调用
private MakeOne(){
}
public static MakeOne getMakeOne(){
if(makeOne==null){
makeOne=new MakeOne();
}
return makeOne;
}
void ready(){
System.out.println("创建成功");
}
}
继承
2.继承:
1.继承的概念:比如猫和狗,名字和年龄,吃东西的属性行为这些共性进行抽取就不需要在每个类中i当以同样的数行和行为,只需要类与 之间建立继承关系即可。
2.eg:抽取一个动物类:名字年龄吃东西
狗类 继承 动物类
狗看家
猫类 继承 动物类
猫捉老鼠
3.继承的好处:
1.继承的出现减少了代码冗余,提高复用性。
2.提高程序功能的扩展性(分别在猫和狗类中维护他们各自特有的属性和行为)
3.让类与类之间产生了is-a 的关系,为多态的使用提供了前提
4.什么时候使用继承?
猫和狗都是动物,满足什么是什么的关系的时候(is-a)。
5.子类继承父类之后拥有父类所有的实例变量和方法,但是不能访问私有成员
6.重写:子类对父类中某个方法重新进行定义,把父类的方法框架拉过来重新写功能。(注:构造方法、静态方法、成员变量不能重写)语法规则子类重写的方法必须和父类重写方法类名相同,参数列表相同,返回值相同
7.super 关键字:子类关键字,访问父类中定义的那部分成员
super.成员变量
super.成员方法(常用)当子类中重写了父类方法时,为了区分调用的是父类中还是子类中的重新给方法,使用super调用父类中的。子类构造方法默认会调用父类午餐的构造方法,必须放在第一行,还可以调用父类中的构造方式。
public class Animals {
static String name;
static int age;
static String gender;
public void eat(){
System.out.println("吃饭吃饭");
}
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public void setGender(String gender){
this.gender=gender;
}
public void getMenu(){
System.out.println(this.name);
System.out.println(this.age);
System.out.println(this.gender);
}
public Animals(){
System.out.println("dou");
}
}
public class Dog extends Animals {
public Dog(){
super();
System.out.println("dou");
}
public void lookbigdoor(){
System.out.println(this.name+"在看大门");
}
//方法重写
public void eat(){
System.out.println("狗哥抱着碗吃");
}
}
public class Gouge extends Dog {
public void eat(){
super.eat();
System.out.println(this.name+"倒立着啃骨头");
}
public void lookbigdoor(){
System.out.println("大门看着"+this.name);
}
}