以上为我的而练习代码(注释写的很清楚),以供参考
package com.jacob.javase;
/*
* 重载解析:
* 方法重载:(只和参数有关)
* 1.1 参数类型不同
* 1.2 参数个数不同
* 1.3 参数顺序不同
* 作用:对方法的调用者来说,屏蔽掉了因参数带来的差异
*/
public class TestConstructor {
public static void main(String[] args) {
// 引用概念:a引用存储的对象内存空间的首地址
// Student s1 = new Student();
// 程序的值传递1:(对象传递的是引用存储内容即对象内存空间首地址)
// System.out.println("s1对象的年龄" + s1.age);
// Student s2 = s1;
// s2.age = 12;
// System.out.print("s1对象的年龄(改变后)" + s1.age);
// 程序的值传递2:函数传递
int a = 1;
// ValueTrans(s2);
// System.out.println("a的值" + a);
// System.out.println("s1的年龄:" + s1.age);
// this关键字的例子
Student s3 = new Student(10);
// s3.print();s
}
public static void ValueTrans(int a) {
a++;
System.out.println("方法中a的值" + a);
}
public static void ValueTrans(Student s) {
s.age++;
}
}
class Student {
String name;
int age;
// 构造函数与类同名:不能主动调用
// 对象构造时:1.分配空间 2.初始化属性变量 3.调用构造函数(只被调用一次且被动)
// 构造函数注意点:1.没有返回值 2.若类中没有构造函数,系统会默认提供一个公开的无参构造函数
public Student() {
System.out.print("构造函数的this调用");
}
// 构造函数的重载
// 构造函数的作用:给实例变量赋值
public Student(String name) {
}
public Student(int age) {
// 当局部变量与实力变量冲突时,优先局部(这样就会出现指代不明)
// 所以这种情况下可以使用this来明确当前变量:特殊引用,指向当前对象
// age=age;错误示例
// this()可以用来调用当前对象的另一个构造函数(注意必须放在第一行)
this();
this.age = age;// bingo
}
public Student(String name, int age) {
}
public void print() {
// this是特殊引用,指向当前对象
int age = 1;
System.out.println(age);
System.out.print(this.age);
}
}
class TestOverLoad {
// 都是重载
void test() {
}
void test(int i) {
}
void test(byte i) {
}
void test(byte i, int j) {
}
}