Java基础核心知识学习——方法参数和对象构造

目录

一、方法参数

1.1 两种参数调用方式

1.2 注意点:

1.3 总结

 二、对象构造

2.1 构造器的代码复用


一、方法参数

1.1 两种参数调用方式

(1)按值调用

        按值调用表示方法接受的是调用者提供的值。

(2)按引用调用

        方法接受的是调用者提供的变量的地址。

Java使用的是按值调用,方法中使用的是参数值的一个副本,即方法不能修改传递给它的任何参数变量的内容,因为方法操纵的是参数的副本。例如:在tripleValue方法中对x放大三倍,并不返回任何数据。执行这个方法后得到a 的值没有放大三倍。

public class test {
	public static void tripleValue(double x) {
		x=3*x;
	}
	public static void main(String[] args) {
		double a = 10;
		tripleValue(a);
		System.out.println(a);
	}

}

        

1.2 注意点:

        如果方法传入的参数本身是一个对象的引用,那么这个参数的副本所指向的地址处的对象与原对象是同一对象(因为引用与引用的副本指向的地址相同),此时方法中对参数的修改会影响到原对象。例如:这里tripleSalary接受的参数是一个对象,输出结果中这个对象的salary加了1000。

public class test {
	public static void tripleSalary(test t) {
		t.salary+=1000;
	}
	public int salary = 1000;
	public void addSalary() {
		this.salary+=1000;
	}
	public static void main(String[] args) {
		test t = new test();
		tripleSalary(t);
		System.out.println(t.salary);
		
	}

}

1.3 总结

(1)方法不能修改基本数据类型的参数

(2)方法可以改变对象参数的状态

(3)方法不能让一个对象参数引用一个新的对象

 二、对象构造

        当类中不存在其他构造器时,Java会为类提供一个默认的无参构造器。如果在类中写了一个自定义的构造器,java就不会提供默认的构造器,要想允许这个类的用户能够用一下方式构造一个实例:

new ClassName()

我们就必须提供一个无参构造器。

public ClassName()
{
}

2.1 构造器的代码复用

        如果构造器的第一个语句是形如this(...),这个构造器就会调用同一个类中的另一个构造器。(通过构造器方法的重载确定调用哪个构造器)。例如:

public Employee(double s)
{
    //calls Employee(String, double)
    this("EmployeeName",s);
    nextId++;
}

通过这种方式,对于公共的构造器代码只需要编写一次即可,从而实现代码复用。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值