gpt4 book ai didi

java - 在java中使用公共(public)属性时遇到问题

转载 作者:行者123 更新时间:2023-12-01 11:05:37 25 4
gpt4 key购买 nike

我刚刚开始用 java 编码,并试图将我的注意力集中在类上。

我在另一个类中使用公共(public)属性时似乎遇到了问题。我有 3 个类:一个包含 main 方法;另一个包含主方法。另外2个是输入和输出。我正在使用非静态变量和方法,但我不想使用静态。

尽管我已经在输出类中实例化了输入类,但输出类无法识别公共(public)属性。为什么会这样?

这里有 3 个类:

package random;
import java.util.Scanner;
import java.util.Arrays;

public class random
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter your first name: ");
input inputObject = new input();
inputObject.setFirstName();
output outputObject = new output();
outputObject.getFirstName();
}
}

package random;

import java.util.Scanner;
public class input
{
public String firstName;
public input() {}
public void setFirstName() {
Scanner keyboard = new Scanner(System.in);
this.firstName = keyboard.nextLine();
}
}

package random;
import java.util.Scanner;

public class output
{
public void getFirstName()
{
input inputObject = new input();
System.out.println("Your first name is " + inputObject.firstName);
}
}

最佳答案

在输出类的 getFirstName 方法中创建的输入对象是与在 main 方法中创建的对象不同的实例。这本质上意味着您正在创建一个新的输入实例,其中输入尚未设置为firstName,因此当您打印该属性时,没有任何可打印的内容。

此外,单个属性的 get 和 set 方法应该位于同一个类中。这样做的一般方法是这样的:

class Foo {

private String property = "";

Foo () {}; //empty default constructor

//sets the property to what is passed in as a parameter
public void setProperty(String newProperty) {
this.property = newProperty;
}

//returns the property
public String getProperty() {
return this.property;
}
}

一般来说,所有类属性都应该是私有(private)的,并具有公共(public) setter 和 getter。如果您是编程新手,我建议您阅读更多内容。

关于java - 在java中使用公共(public)属性时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32983281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com