封装 1.封装的概念 Java的封装机制就是将将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来对隐藏的信息进行操作和访问。 2.好处 (1). 可以在方法中对数据进行条件判断,减少错误 (2). 外部程序不能直接修改数据可减少操作中的失误 (3). 方便对的bug进行修改 3.如何封装类? (1).将变量以private修饰符修饰 (2).提供geter/seter方法进行读取变量和修改变量(可在方法中设置条件)
示例:
class HelloWorld{//创建类
private int hello;//定义私有变量
public void setHello(int hello){//输入方法
this.hello=hello;//this等同于引用,指向当前对象的堆内存地址
}
public int getHello(){//输出方法
return hello;
}
}
类的继承 继承的主要作用在于,在已有基础上继续进行功能的扩充。 基础语法:class B extends A{} 在上列代码中通过extends关键字来让B类继承A类,通常称A为父类,B为子类,子类可以继承父类的所有结构.继承过来的属性与变量大多都可以通过子类自身的引用来调用,构造方法和私有变量例外。 构造方法的调用:需要通过super关键字来调用。(使用super调用构造方法时super应放在当前方法的首行) 私有变量的调用:需要通过seter/geter方法去修改和读取。
继承所需要遵守的:父类一定要是所有子类的共同属性.如:动物可以说猫是动物,也可以说狗是动物,但猫不能说猫是狗或者狗是猫。父类与子类之间可以用"…是…"来说明的就算是可以使用继承。(没有继承关系去使用继承就会增加修改bug的难度) 继承示例:
public class Main {
public static void main(String[] args) {
new Father();//新建父类无参构造
new Father(1,"father");//新建父类有参构造
new Sno();//新建子类无参构造
new Sno(1,2,"sno");//新建子类有参构造
}
}
class Father{//父类
private String s;//私有属性
int number;
public Father(){
System.out.println("父类无参构造方法被调用!!");//被调用时输出
};//构造方法
public Father(int number,String s){
System.out.println("父类有参构造方法被调用(int,String)!!");//被调用时输出
this.number=number;
setS(s);
}
//geter/seter方法
public String getS(){
return s;
}
public void setS(String s) {
this.s = s;
}
}
class Sno extends Father{//子类
int cnt;
public Sno(){
super(10,"子类");//调用父类有参构造
System.out.println("子类无参构造方法被调用!!");//被调用时输出
}
public Sno(int cnt,int number,String s){
//注意:此处没有使用super调用父类构造方法
System.out.println("子类有参构造方法被调用(int,int,String)!!");//被调用时输出
this.cnt=cnt;
this.number=number;
setS(s);
}
}
输出:
父类无参构造方法被调用!!
父类有参构造方法被调用(int,String)!!
父类有参构造方法被调用(int,String)!!
子类无参构造方法被调用!!
父类无参构造方法被调用!!//此处调用并没有super调用父类却出现了父类无参构造方法被调用
子类有参构造方法被调用(int,int,String)!!
由上面例子可以得出,子类在使用构造方法时会自动将super()(父类的无参构造)作为构造方法的首行代码. 本人小白,初学Java,不足的地方还请各位大佬指出.
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。