美文网首页
方法参数、对象构造

方法参数、对象构造

作者: 爱做梦的严重精神病患者 | 来源:发表于2018-10-11 16:15 被阅读0次

1.方法参数

方法参数两种类型:基本数据类型(数字、布尔值),对象引用

 将参数传递给方法有两种方式:
 按值调用:方法接收的是调用者提供的
 按引用调用:方法接收的是调用者提供的变量地址

 一个方法可以修改传递引用所对应的变量值,而不能修改传递调用所对应的变量值
Java程序设计语言总是按值调用。方法得到的是所有参数值的一个拷贝,方法不能修改传递给它的任何参数变量的内容。举例:

//方法参数的类型是基本数据类型
public static void tripleValue(double x) {
        x = 3 * x;
}

double percent = 10;
tripleValue(percent);

//percent的值还是为10
//方法参数的类型是对象引用
public static void raiseSalary(Employee x) {
      
          x.salary += 200;
}

harry = new Employee(...);
raiseSalary(harry);

//harry对象的薪水提升了200元

 有人认为Java对对象采用的是引用调用,其实是不对的。举例:

public static void swap(Employee x, Employee y) {
            Employee temp = x;
            x = y;
            y = temp;
}

Employee a = new Employee("Alice", ...);
Employee b = new Employee("Bob", ...);
swap(a, b);

//最终a和b仍然引用之前所引用的对象。

 如果Java对对象采用的是按引用调用,那么这个方法就应该能够实现交换数据的效果。事实上,并没有实现这个效果。

总结----Java中方法参数的使用情况:

  • 一个方法不能修改一个基本数据类型的参数(即数值型或布尔型)。
  • 一个方法可以改变一个对象参数的状态。(修改对象的属性)。
  • 一个方法不能让对象参数引用一个新的对象
  • Java中基本数据类型参数传递是值传递对象和数组传递的是地址

2.对象构造

重载:多个方法有相同的名字不同的参数,便产生了重载。
返回类型不是方法签名的一部分。也就是说,不能有两个名字相同参数类型也相同返回不同类型值的方法。


关键字this:如果构造器第一个语句形如this(...),那么将调用同一个类的另一个构造器

public Employee(double s) {
       this("Employee #" + nextId, s);
}

初始化块:在一个类的声明中,可以包含多个代码块。只要构造类的对象,这些块就会被执行。(static域时常使用)
 无论使用哪个构造器构造对象,首先运行代码块然后运行构造器的主体部分


对象回收Java自动垃圾回收器不需要人工回收内存,所以Java不支持析构器
 某些对象,使用了内存之外的其他资源,当资源不再需要时,将其回收和再利用将显得十分重要。
 可以为任何一个类添加finalize方法。finalize方法将在垃圾回收器清除对象之前调用。(不要依赖于使用finalize方法回收任何短缺的资源)。
 如果某个资源需要在使用完毕后立刻被关闭,那么就需要由人工来管理。对象用完时,可以应用一个close方法来完成相应的清理操作。

相关文章

  • 方法参数、对象构造

    1.方法参数  方法参数有两种类型:基本数据类型(数字、布尔值),对象引用。  将参数传递给方法有两种方式: 按值...

  • 浅拷贝和深拷贝 实现的几种方式

    浅拷贝 一、通过拷贝构造方法实现浅拷贝: 拷贝构造方法指的是该类的构造方法参数为该类的对象。使用拷贝构造方法可以很...

  • 构造函数注意事项及构造函数创建对象存在问题

    01 构造函数内部设置方法(函数传值)函数传值:可以把构造函数的对象方法抽取为参数 02 对象类型 检查对象的类型...

  • [译]Scala Extractor Objects

    Extractor Object是有unapply方法的对象。apply方法像是构造函数,可以带参数以及创建对象,...

  • JS-对象创建

    使用函数工厂创建对象,通过参数传递对象定制的数据,内部返回包含属性和方法的对象 使用构造函数创建对象,构造函数默认...

  • Effective Java第三版速览

    创建与销毁对象 静态工厂方法取代构造方法 构建器取代多参数构造方法 强制单例使用私有构造方法或枚举类型 强制非实例...

  • 2019-08-15

    构造方法可以没有参数,也可以有多个参数。析构方法的作用和构造方法正好相反,是对象被销毁时被自动调用的,作用是释放内存。

  • 2019-08-05

    构造方法可以没有参数,也可以有多个参数。析构方法的作用和构造方法正好相反,是对象被销毁时被自动调用的,作用是释放内...

  • IOC&Bean

    一、IOC概述 IOC(Inversion of Control 控制反转) 是对象通过构造器参数、工厂方法参数、...

  • SpringFramework Core(一)

    IoC容器 IoC也称为依赖注入(DI)。在此过程中,对象仅通过构造函数参数,工厂方法的参数或在构造或从工厂方法返...

网友评论

      本文标题:方法参数、对象构造

      本文链接:https://www.haomeiwen.com/subject/fksbaftx.html