我是OOP的新手,我想知道如何设置不像int,string,double等的东西。
我有两个类,Foo和Bar,以及一些实例变量 如何设置Bar类型实例变量?
public class Foo
{
//instance variables
private String name;
Bar test1, test2;
//default constructor
public Foo()
{
name = "";
//how would I set test1 and test 2?
}
}
public class Bar
{
private String nameTest;
//constructors
public Bar()
{
nameTest = "";
}
}
答案 0 :(得分:3)
与其他任何方法相同,创建Bar
的实例并在实例属性上设置它。
您可以在构造函数中创建这些实例,将它们传递给构造函数,或使用setter进行设置:
public class Foo {
private Bar test1;
public Foo() {
test1 = new Bar();
}
public Foo(Bar bar1) {
test1 = bar1;
}
public void setTest1(Bar bar) {
test1 = bar;
}
public static void main(String[] args) {
Foo f1 = new Foo();
Foo f2 = new Foo(new Bar());
f2.setTest1(new Bar());
}
}
答案 1 :(得分:3)
您需要使用Bar
运算符创建new
的新实例,并将它们分配给您的成员变量:
public Foo() {
name = "";
test1 = new Bar();
test2 = new Bar();
}
答案 2 :(得分:1)
如果要在默认构造函数中设置 Bar ,则必须实例化它。
这是使用new operator完成的。
Bar someBar = new Bar();
您还可以使用参数创建构造函数。
以下是如何创建一个以字符串作为参数的 Bar 构造函数:
class Bar {
private String name;
public Bar(String n) {
name = n;
}
}
以下是如何在 Foo的默认构造函数中使用新的 Bar 构造函数:
class Foo {
private String name;
private Bar theBar;
public Foo() {
name = "Sam";
theBar = new Bar("Cheers");
}
}
为了更加聪明,您可以创建一个带有两个参数的新 Foo 构造函数:
class Foo {
private String name;
private Bar theBar;
public Foo(String fooName, String barName) {
name = fooName;
theBar = new Bar(barName);
}
}
答案 3 :(得分:1)
试试这个例子
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//getters and setters
}
public class Student {
private String school;
private Person person;
public Student(Person person, String school) {
this.person = person;
this.school = school;
}
//code here
}
class Main {
public static void main(String args[]) {
Person p = new Person("name", 10);
Student s = new Student(p, "uwu");
}
}
String,Integer,Double等也是像
这样的类