java知识小结(三)

70 阅读1分钟

*关于:java中的传递方式

Java中只有一种传递,就是数值传递,市面上说得引用传递实际上也是数值传递,因为引用传递,传递的其实就是地址,地址就是一种数值  

*关于:new关键字

new关键字到底做了哪些事情? 

 Person p = new Person();

1.首先在堆内存开辟了一块空间 

   1.1 然后隐式初始化成员变量为默认值

  1.2 然后显式的初始化成员变量 

2.调用Person类的构造方法 

3.把堆内存生成的地址返回到接收者 

*关于:继承的注意事项: 

1.构造方法不能被继承,但是可以通过super关键字去访问父类的构造方法。 

2.只能继承父类所有非私有的成员变量和成员方法。

 3.子类的构造方法隐式的调用父类的不带参数的构造方法。

 4.当父类没有不带参数的构造方法时,子类需要使用super来显式的调用父类的构造方法,super关键字是对父类的引用 

5.super关键字必须是构造方法中的第一行语句。

 代码举例说明:

package java1108;
class Animals{
	int age = 20;
	private String name;
	void eat() {
		System.out.println("eating...");
	}
	void sleep() {
		System.out.println("sleeping...");
	}
	Animals(){
		System.out.println("我是父类的构造方法");
	}
}
class Dog extends Animals{
	int age = 18;
	Dog(){
		//隐式的调用了父类的构造方法super();
		System.out.println(super.age);//利用super关键字访问父类变量
		System.out.println(age);
	}
	void eat() {
		System.out.println("eating***");
	}
	void breaking() {
		System.out.println("breaking...");
	}
	void info() {
		super.eat();//利用super调用父类的方法
		breaking();
	}
}
public class Test3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Animals a = new Animals();
		Dog d = new Dog();
//		d.name = "高飞";
		d.info();
	}

}

输出:

在这里插入图片描述

 static的执行顺序:static代码块和构造函数执行顺序一样,都是先执行父类的。