Java学习记录
1.Java在参数传递时都是值传递,基本类型都是字面值,也就是传递的都是原变量的值得拷贝,改变这个值不会改变原变量内的值;
而引用类型传递的是地址,也就是参数与原变量指向的是同一个地址,所以如果通过新的变量改变对象的属性,原变量的所指向的对象属性也会改变;
2.Java中子类构造器可以通过this()调用其他的重写的本类构造器,但是n个子类构造器,最多存在n-1次调用本类构造器,至少有一个子类构造器会调用父类构造器,层层向上直至调用Object类的无参构造器,从而子类会加载父类所有的结构(子类继承父类的属性和方法),这里有一个问题需要注意:子类可以重写父类的方法,但是子类可以在自己的方法中通过 super.methodName 调用父类被重写的方法,但是调用的该父类的方法操作的是子类的属性;
public class Father {
public String name = "zj";
public int age = 32;
public double salary = 100.0;
Father(String name, int age) {
this.name = name;
this.age = age;
}
public void show() {
System.out.println("姓名:" + name + "年龄:" + age + "薪水:" + salary);
}
public void shout() {
System.out.println("oh!"+name);
}
}
public class Child extends Father {
double score;
Child(String name,int age,double score) {
super(name,age);
this.score = score;
}
public void show() {
super.show();
//子类装载了父类被重写的方法,调用时使用super区别于重写的方法?
System.out.println("**************************************");
System.out.println("姓名:"+name+"年龄:"+age+"分数:"+score+"薪水"+salary);
}
}```
3.插入和改写,粗光标和细光标,insert键会改变输入模式,粗光标表示改写模式,细光标表示插入模式。
4.super()或this()要放在首行,super()可以调用父类构造器,默认调用父类无参数构造器,this()可以调用本类的重载的构造器,注意父类或本类其他构造器只能调用一个。