1.构造方法
作用:初始化创建的对象,为对象赋初值
特点:构造方法名与类名相同,且无返回值
public Car(){
System.out.println("表示Car中无参数")
}
如果类中无构造方法,将会有默认的构造方法,即就是
public Car(){
}
如果出现了构造方法,默认的构造方法便无作用
2.方法重载
在同一类中有多个方法名相同,但参数不同
作用:可以在同一功能里处理不同的数据类型
构造方法:这里的参数不同包括:个数,类型(类型包括基本类型和引用类型),顺序
public day1(int a,int b){
System.out.println("int a,int b"+a+b);
}
public day1(int a,float b){
System.out.println("int a,float b");
}
public day1(int a,int b, int c){
System.out.println("int a,int b,int c");
}
成员方法同样可以重载
public void run(String name){
System.out.println(name+"正在行驶");
}
public void run(int name){
System.out.println(name+"正在行驶");
}
public void run(String name, int age){
System.out.println(name+age+"正在行驶");
}
3.对象与引用
Car sc=new Car();
3.1以上述为例,"new Cae()"是以Car为模板,调用Car的构造函数在堆空间中创建了Car的虚体,
这个虚体只能通过对象(sc)引用链接
左边的sc就指的是Car类型的对象
ackage day1;
public class day1 {
String name;
public day1(){
System.out.println("表示day1类中无参");
}
public void run(String name){
System.out.println(name+"正在行驶");
}
public static void main(String[] args) {
day1 sc=new day1();
sc.run("玛莎拉蒂");
}
}
3.2this关键字
使用格式为this.+成员变量引用成员变量
否则成员变量所表示的变量是就近选择
通常用来区别成员变量和局部变量
常用于构造方法中初始化变量
public Car(int a,int b){
this.a=a;
this.b=b;
public car()
}
3.3值传递和引用传递
值传递:指的是将基本数据类型形参数的传递,实际参数将值赋给形参,而这个值只是用来初始化形参的存储单元,与实参的存储单元无关,所以基本数据类型值传递并不影响原来实际参数的值
值传递:
public class TestArgsValue {
public static void main(String[] args) {
int i = 10;
TestArgsValue tv = new TestArgsValue();
tv.method1(i);
System.out.println("i=" + i);
}
public void method1(int i){
System.out.println("i=" +(++i));
}
输出结果为:i=11;
i=10;
在将实参i的值赋给形参i之后,实参i的值依旧是10
引用传递:
public class TestArgsValue {
public static void main(String[] args) {
int i = 10;
TestArgsValue tv = new TestArgsValue();
Demo d = new Demo();
tv.method2(d);
System.out.println("d.i = " + d.i);
}
public void method1(int i){
System.out.println("i=" +i++);
}
public void method2(Demo d){
System.out.println(d);
System.out.println("d.i : " + d.i++);
}
}
class Demo{
int i = 5;
}
输出结果为:d.i : 5
d.i = 6
tv.method2(d);
System.out.println("d.i = " + d.i);。
Demo d = new Demo();语句是将Dome的堆空间地址赋给了d,所以当d.i的值发生变化时,实际是d.i的地址被修改,因此的d.i的值发生变化。