Java构造方法

本文介绍了一个简单的Java程序,该程序定义了一个三维空间中的点类,并实现了计算两个点之间欧氏距离的方法。通过构造方法初始化点的位置,利用数学公式计算两点间的直线距离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.text.come;

public class Point{
    private int x,y,z;
    public int getX() {
return x;
}

public void setX(int x) {
this.x = x;
}

public int getY() {
return y;
}

public void setY(int y) {
this.y = y;
}

public int getZ() {
return z;
}

public void setZ(int z) {
this.z = z;
}

//通过构造方法初始化对象的属性
    public Point(int x,int y,int z){
    this.x=x;
    this.y=y;
    this.z=z;
    }
     //求两点之间的距离
    public double distance(Point p){
    return Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z));
    }
    public static void main(String[] args) {
    Point p =new Point(3,4,5);
System.out.println(p.x);
Point q = new Point(6, 8, 10);
System.out.println(p.distance(q));
}
}
### Java 构造方法的用法及其示例 #### 什么是构造方法? 在 Java 中,构造方法是一种特殊的方法,用于创建并初始化对象的状态。它具有与类相同的名称,并且不返回任何数据类型(甚至 `void`)。当通过 `new` 关键字实例化一个新对象时,相应的构造方法会被调用来完成必要的初始化工作。 #### 默认构造方法 如果开发者未显式定义任何构造方法,则编译器会自动提供一个无参的默认构造方法[^1]。然而,一旦定义了一个自定义构造方法,默认构造方法将不再由编译器生成。 ```java public class MyClass { int value; // 自动提供的默认构造方法(如果没有定义其他构造函数) public MyClass() { this.value = 0; } } ``` #### 参数化的构造方法 参数化的构造方法允许传递初始值给对象属性,在创建对象的同时设置其状态。 ```java public class Person { String name; int age; // 带有参数的构造方法 public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person{name='" + name + "', age=" + age + "}"; } } // 使用带参数的构造方法来创建对象 Person person = new Person("Alice", 30); System.out.println(person.toString()); // 输出: Person{name='Alice', age=30} ``` #### 静态工厂方法 vs 构造方法 尽管可以通过静态工厂方法替代传统的构造方法实现对象创建,但它们之间存在一些差异。例如,静态工厂方法可以拥有有意义的名字、返回缓存的对象或者子类型的实例等特性[^3]。 ```java class MyBeanFactory { private static final Map<String, MyBean> cache = new HashMap<>(); public static synchronized MyBean getMyBeanInstance(String key) { if (!cache.containsKey(key)) { cache.put(key, new MyBean()); } return cache.get(key); } } // 调用静态工厂方法获取对象实例 MyBean myBean = MyBeanFactory.getMyBeanInstance("uniqueKey"); ``` #### 复合模式中的构造方法应用 某些设计模式如单例模式也依赖于私有的构造方法防止外部随意实例化该类[^1]。 ```java public class SingletonExample { private static SingletonExample instance; // 私有化构造方法阻止外界直接访问 private SingletonExample() {} public static SingletonExample getInstance() { if(instance == null){ instance = new SingletonExample(); } return instance; } } ``` #### 注意事项 - 如果尝试除以零的操作将会抛出 ArithmeticException 异常;但是有一种特殊情况即最小整数值被负一相除不会引发异常而是保持原样[^4]。 - 功能测试关注的是应用程序的功能需求是否满足预期行为而不涉及内部结构细节[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值