【Java笔记】面向对象编程-类与对象(二)- 代码块、内部类、继承、覆写、final关键字、数据类型转换、多态性 - 总结三
面向对象编程-类与对象(下)
备注:
java中静态代码块、构造块、构造方法的执行时机 链接1:
https://blog.****.net/qq_43109561/article/details/88375721
内部类详解 链接2:
https://blog.****.net/qq_43109561/article/details/88378532
如何用内部类避免 java 单继承的缺陷 范例1:
class A {
private String name = "A类的私有域";
public String getName() {
return name;
}
}class B {
private int age = 20;
public int getAge() {
return age;
}
}class Outter {
private class InnerClassA extends A {
public String name() {
return super.getName();
}
}
private class InnerClassB extends B {
public int age() {
return super.getAge();
}
}
public String name() {
return new InnerClassA().name();
}
public int age() {
return new InnerClassB().age();
}
}public class Test {
public static void main(String[] args) {
Outter outter = new Outter();
System.out.println(outter.name());
System.out.println(outter.age());
}
}
内部类可以直接访问外部类的元素(包含私有域),但是外部类不可以直接访问内部类的元素 范例2:
class Outter {
private String outName;
private int outAge;
class Inner {
private int InnerAge;
public Inner() {
Outter.this.outName = "I am Outter class";
Outter.this.outAge = 20;
}
public void display() {
System.out.println(outName);
System.out.println(outAge);
}
}
}
public class Test {
public static void main(String[] args) {
Outter.Inner inner = new Outter().new Inner();
inner.display();
}
}
外部类可以通过内部类引用间接访问内部类元素 范例3:
class Outter {
public void display() {
// 外部类访问内部类元素,需要通过内部类引用来访问
Inner inner = new Inner();
inner.display();
}
class Inner {
public void display() {
System.out.println("I am InnerClass");
}
}
}
public class Test {
public static void main(String[] args) {
Outter out = new Outter();
out.display();
}
}
数据类型转换(使用 +、-、*、/、%、运算操作时) 范例4:
//出错的语句是1,3,4
//语句1中两个byte型的数都被转换成int型,相加的结果也是int型,而int型数据不能赋值给byte型
//语句2因为b4和b5都用final修饰,所以正确
//语句3和语句1同理
//语句4中final修饰的值不能被修改byte b1=1,b2=2,b3,b6,b8;
final byte b4=4,b5=6,b7=9;
public void test() {
b3=(b1+b2); /*语句1*/
b6=b4+b5; /*语句2*/
b8=(b1+b4); /*语句3*/
b7=(b2+b5); /*语句4*/
System.out.println(b3+b6);
}