创建类类型变量的实例

时间:2012-09-06 01:10:25

标签: java oop constructor instance-variables

我是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 = "";
    }
}

4 个答案:

答案 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等也是像

这样的类