java私有公有化构造器
时间: 2023-08-01 21:13:15 浏览: 87
Java中的构造器可以通过访问修饰符来进行公有化或私有化。私有化构造器可以防止类被外部实例化,而只能在类内部进行实例化。
以下是私有化构造器的示例代码:
```java
public class MyClass {
// 私有化构造器
private MyClass() {
// 构造器代码
}
// 公有静态方法获取实例
public static MyClass getInstance() {
return new MyClass();
}
}
```
在上面的示例代码中,我们将构造器私有化,以防止外部实例化。而通过公有静态方法 `getInstance()` 来获取实例,这样就可以在类内部进行实例化了。
相关问题
实验题目 : 建一个banking包,在这个包里,创建一个账户类Account。 实验目的:定义类 提示: 1.在banking包下创建Account类。 a.声明一个私有对象属性:balance。 b.声明一个公有构造器,这个构造器带有一个代表对象属性的参数(init_balance) c.声明一个公有存取器来访问该对象属性,方法 getBalance(),返回相应的属性。 d.声明公有方法deposit(),用来实现存钱功能,有一个参数amt,表示存入的钱数。 e.声明公有方法withdraw(),用来表示取现,有一个参数amt,表示取现的数量。
好的,根据您的要求,我来为您解答这个问题。
首先,我们需要在banking包下创建一个Account类,代码如下:
```java
package banking;
public class Account {
private double balance; // 声明私有对象属性:balance
// 声明公有构造器,这个构造器带有一个代表对象属性的参数(init_balance)
public Account(double init_balance) {
this.balance = init_balance;
}
// 声明公有存取器来访问该对象属性,方法getBalance(),返回相应的属性
public double getBalance() {
return this.balance;
}
// 声明公有方法deposit(),用来实现存钱功能,有一个参数amt,表示存入的钱数
public void deposit(double amt) {
if (amt > 0) {
this.balance += amt;
System.out.println("存款成功,当前余额为:" + this.balance);
} else {
System.out.println("存款失败,存入的金额必须大于0!");
}
}
// 声明公有方法withdraw(),用来表示取现,有一个参数amt,表示取现的数量
public void withdraw(double amt) {
if (amt > 0 && amt <= this.balance) {
this.balance -= amt;
System.out.println("取款成功,当前余额为:" + this.balance);
} else {
System.out.println("取款失败,取款金额必须大于0且不得超过当前余额!");
}
}
}
```
上面代码中,我们创建了一个名为Account的类,该类拥有一个私有对象属性balance,一个公有构造器,一个公有存取器getBalance(),一个公有方法deposit()和一个公有方法withdraw()。
在构造器中,我们使用了一个代表对象属性的参数init_balance来初始化balance属性。在存取器getBalance()中,我们返回了balance属性的值。
在deposit()方法中,我们首先判断存入的金额是否大于0,如果大于0,就将该金额加到balance属性上,并输出存款成功的信息;否则,输出存款失败的信息。
在withdraw()方法中,我们首先判断取款金额是否大于0且不得超过当前余额,如果满足条件,就将该金额从balance属性中减去,并输出取款成功的信息;否则,输出取款失败的信息。
这样,我们就成功地创建了一个账户类Account,实现了存款和取款的功能。
java构造器里的变量能传出来吗
Java中的构造器是用于创建对象时初始化对象的方法。通常情况下,构造器会初始化对象的属性(成员变量),并且在对象创建后,这些属性的值会一直保持不变,除非显式地修改它们的值。
如果你需要从一个Java构造器里传出一个变量,可以在构造器中定义一个局部变量,并在构造器中将其赋值。然后,你可以在构造器外部通过调用构造器来创建对象,并通过访问对象的属性来获取其值。
例如,下面的代码演示了如何在Java构造器里传出一个变量:
```java
public class MyClass {
private int myVar; // 定义一个私有成员变量
public MyClass(int value) { // 定义一个构造器,用于初始化 myVar 的值
myVar = value;
}
public int getMyVar() { // 定义一个公有方法来获取 myVar 的值
return myVar;
}
}
// 在其他类中使用 MyClass
public class OtherClass {
public void doSomething() {
MyClass obj = new MyClass(10); // 创建一个 MyClass 对象,并将 myVar 的值初始化为 10
int var = obj.getMyVar(); // 获取 myVar 的值
System.out.println(var); // 输出 10
}
}
```
在上面的代码中,我们定义了一个名为 `MyClass` 的类,并在其中定义了一个名为 `myVar` 的私有成员变量。然后,我们定义了一个构造器 `MyClass` 来初始化 `myVar` 的值。在 `OtherClass` 类中,我们创建了一个 `MyClass` 对象,并将其值初始化为 10,然后调用 `getMyVar` 方法来获取 `myVar` 的值并打印出来。
阅读全文