封装:封装是一个概念,它的含义是把方法、属性、事件集中到一个统一的类中,并对使用者屏蔽其中的细节问题。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。
比如我们将一个房子看做是一个对象,里面的漂亮的装饰,如沙发、电视剧、空调、茶桌等等都是该房子的私有属性,但是如果我们没有那些墙遮挡,是不是别人就会一览无余呢?没有一点儿隐私!就是存在那个遮挡的墙,我们既能够有自己的隐私,而且我们可以随意的更改里面的摆设而不会影响到其他的。但是如果没有门窗,一个包裹的严严实实的黑盒子,又有什么存在的意义呢?所以通过门窗别人也能够看到里面的风景。所以说门窗就是房子对象留给外界访问的接口。
使用封装的好处:
1、类内部的结构可以自由修改。
2、隐藏信息,实现细节。
3、可以对成员进行更精确的控制。(如果输入有问题的时候,可以在调用的时候进行判断。)
4,封装确实可以使我们容易地修改类的内部实现,而无需修改使用了该类的客户代码。
一般我们写的类的属性就是用的封装的思想,里面的属性都是private,比如:
public class Husband {
private String name ;
private String sex ;
private int age ;
private Wife wife;
}
然后外部通过getter和setter方法去访问这个类里面的数据,
Husband husband=new Husband();
husband.setName(xx);//更改Husband类里面的name的时候用,
husband.getName();//获得husband对象里面的name
01.public class Husband {
02.
03. /*
04. * 对属性的封装
05. * 一个人的姓名、性别、年龄、妻子都是这个人的私有属性
06. */
07. private String name ;
08. private String sex ;
09. private int age ;
10. private Wife wife;
11.
12. /*
13. * setter()、getter()是该对象对外开发的接口
14. */
15. public String getName() {
16. return name;
17. }
18.
19. public void setName(String name) {
20. this.name = name;
21. }
22.
23. public String getSex() {
24. return sex;
25. }
26.
27. public void setSex(String sex) {
28. this.sex = sex;
29. }
30.
31. public int getAge() {
32. return age;
33. }
34.
35. public void setAge(int age) {
36. this.age = age;
37. }
38.
39. public void setWife(Wife wife) {
40. this.wife = wife;
41. }
42.}
继承:如果两个类存在继承关系,则子类会自动继承父类的方法和变量,在子类中可以调用父类的方法和变量,如果想要在子类里面做一系列事情,应该放在父类无参构造器里面。在java中,只允许单继承,也就是说一个类最多只能显示地继承于一个父类。但是一个类却可以被多个类继承,也就是说一个类可以拥有多个子类。
java类不允许多继承。原因:
1,当不同的父类存在相同属性方法的时候,无法判定调用哪个。
2,由于子类实例化需要调用父类的无参构造器,无法识别是那个父类的构造器,
1.子类继承父类的成员变量
当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员变量。具体的原则如下:
1)能够继承父类的