java - 如何在Java中将参数从一个类传递到另一个类?
问题描述
如果这是一个重复的问题,请原谅我,但我是 Java 的初学者,我目前正在尝试从名为 Name 的类中获取参数值并将该值传递给另一个名为 Student 的类。
名称类:
public class Name
{
public String studentName;
public Name(String fullName)
{
studentName = fullName;
}
}
学生班级:
public class Student
{
private Name studentName;
private String id;
private int credits;
public Student(String studentID)
{
studentName = new Name("");
id = studentID;
credits = 0;
}
}
我想要做的是获取fullName
在 Name 类中设置的参数值并将其传递studentName = new Name("");
给 Student 类,而不是传入一个空字符串来检索名称。
解决方案
fullName
“获取在 Name 类中设置的参数值”是什么意思?一个类不会有值,你需要访问这个类的实例。我很确定你会有某种控制类,例如你main()
居住的地方。
在某些时候,您将创建一个Name
实例:
Name n = new Name("Brandon");
使用这个Name
类的实例,您可以访问实际值:
Student s = new Student("4711", n.studentName);
,假设您还在 Student 构造函数中包含了一个附加参数:
public class Student
{
private Name studentName;
private String id;
private int credits;
public Student(String studentID, String name)
{
studentName = new Name(name);
id = studentID;
credits = 0;
}
}
,但这会导致您拥有 2 个不同的Name
对象。
另一种选择是将对象本身作为参数传递,因此您的两个对象都引用同一个对象。改变studentName
其中一个n.studentName
并且s.studentName
理论上会导致另一个的值也被改变(尽管我可以回忆起关于 Java 中关于该主题的一些讨论)。
public class Student
{
private Name studentName;
private String id;
private int credits;
public Student(String studentID, Name nameObject)
{
studentName = nameObject;
id = studentID;
credits = 0;
}
}
, 它由
Name n = new Name("Brandon");
Student s = new Student("4711", n);
您绝对应该开始阅读面向对象编程的介绍,因为仅在这几行代码中就有很多错误假设。类和对象之间的区别至关重要,在这些场景中,通常在类中有 getter/setter 而不是公共变量。为了实现您想要的那种依赖,您可能需要在面向对象的上下文中研究组合和聚合。值传递和引用传递之间的区别也值得研究。
推荐阅读
- ruby-on-rails - Prawn::Errors::CannotFit: 表格的宽度设置得太小而无法包含其内容
- azure - 未指定目标存储位置的 Uri。请考虑更改请求的位置模式
- c# - 将excel数据直接读入gridview,一列显示255个以上字符的完整数据
- angular - 一个完整的 observable 会发生什么?如果我订阅了一个完整的 observable 怎么办?
- swift - 如何在我的游戏中保存用户的等级?
- javascript - 动态添加一列到数据表
- c# - 从日期时间获取周数
- razor - 为什么我的 Razor 代码不能与 ASP.NET Core 中的标记帮助程序一起使用
- node.js - 解决 Angular 项目错误
- python - 在 Python 中定义类型化字典