gpt4 book ai didi

java - 跨类传递对象

转载 作者:行者123 更新时间:2023-12-01 12:26:00 28 4
gpt4 key购买 nike

一个非常简单的高中 java 学生提出的非常简单的问题。

我收集了用户输入并创建了一个对象“AccountOne”。我必须将 AccountOne 传递到类 printcode 中,并使用 printaccount 方法打印“myaccount.name、myaccount.address、myaccount.type、myaccount.balance”。我的老师一直在试图解释遗传,但她每天都越来越失去我。根据我的理解,AccountOne 类型的对象 myaccount 现在应该在其内部“具有”myaccount.name、myaccount.address、myaccount.type、myaccount.balance”。并且因为我将对象传递到方法中,所以该方法继承了因此,方法 printaccount 应该能够找到符号“myaccount,my account.name,myaccount.address,myaccount.type,myaccount.balance”。我已经研究过,一切对我来说都没有意义,这一切似乎是关于我什至还没有开始掌握的更高级的东西。如果有重复的问题,请指出我。

编译时,我收到 10 多个错误,提示“不是声明”或“找不到符号 myaccount”。在这一点上我只会取零,我非常沮丧。这很可能是一些我一直在浏览的愚蠢简单的事情。

我尝试在主语句之前在 printcode 中定义变量。 AccountOne 中定义的变量。尝试研究定义方法的不同方式,但找不到任何对我有意义的东西。

import java.util.Scanner;
public class AccountOne
{
public String name;
public String address;
public String type;
public double balance;

public static void main(String args[])
{
Scanner keyboard = new Scanner(System.in);

System.out.print("Enter Name ");
String name=keyboard.nextLine();
System.out.println();

System.out.print("Enter Address ");
String address=keyboard.nextLine();
System.out.println();

System.out.print("Enter type ");
String type=keyboard.nextLine();
System.out.println();

System.out.print("Enter Balance ");
double balance=keyboard.nextDouble();
System.out.println();

AccountOne myaccount=new AccountOne();
myaccount.name=name;
myaccount.address=address;
myaccount.type=type;
myaccount.balance=balance;

printcode.printaccount(myaccount);
}
}

二等 - 打印代码:

public class printcode
{
public static void main(String args[])
{
public static printaccount(AccountOne myaccount)
{
System.out.println("My Account = " + myaccount.name + " " + myaccount.address + " " + myaccount.type + " $" + myaccount.balance);
}
}

}

最佳答案

首先,当我们说 - myaccount.name 时,它意味着 myaccountMyAccount 类的实例,并且它定义了一个成员变量,并且这是名称

例如 -

class MyAccount {
String name;
public static void main (String...a) {
//here am allowed to say myaccount.name
MyAccount myaccount = new MyAccount();
}
}

二、声明

System.out.println("My Account = " + myaccount.name " " + myaccount.address " " + myaccount.type " $" + myaccount.balance);

全错了。修改为

System.out.println("My Account = " + myaccount.name + " " + myaccount.address + " " + myaccount.type + " \\$" + myaccount.balance);

现在,您应该得到另一个异常,它应该告诉您不能从静态上下文引用非静态变量地址。这意味着如果您想在静态的 main 上下文中访问 name - 您需要将 name 的声明更改为

static String name;

第三,文件中只能有一个 public 类。将 public class printcode 更改为 class printcode。如果两个类位于不同的文件中,则无需考虑这一点。

希望这有帮助。我将这两个类复制粘贴到一个文件中。

关于java - 跨类传递对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26325781/

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