[英]Java class inside other class, constructor
我想在其中創建一個類,然后再創建另一個類。 本課程將直接與上等課程聯系。 它應該看起來像以下內容(不是代碼,只是模式):
class company
string name
class employee
string firstName, lastName;
int age
當然,我有構造函數等。現在我想在公司內部創建公司'g'和2歲的員工fm。 也許在另一個班級內上課是沒有道理的,我應該與現場公司一起創建班級員工?
編譯器說,下面的代碼不起作用: 包含company.employee的封閉實例是必需的
nowa=new company('g',2);
nowa.prac=new company.employee('f','m',2);
完整代碼如下:
public class program
{
public static class company
{
char name;
int duration;
public class employee
{
public char imie,nazwisko;
public int wiek;
public employee(char a,char b,int w)
{
imie=a;
nazwisko=b;
wiek=w;
}
}
public company(char n,int c)
{
name=n;
duration=c;
}
}
public static void main(String []args)
{
company nowa=new company('g',2);
nowa.empl=new employee('f','m',2);
}
}
嘗試
nowa.prac = nowa.new firma.pracownik('f','m',2);
以下是有關原因的更多信息:
http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
這是我的方法
public class Employee {
//...code
}
public class Company {
//...code
private List<Employee> employees;
}
public static void main(String []args)
{
Company nowa=new company('g',2);
nowa.getEmployees.add(new Employee('f','m',2));
}
}
您的方法的主要變化是:
內部類員工不是靜態的,因此您需要外部類的實例來創建內部類實例。 沒有公司,員工可能就不存在!
company nows = new company('g',2);
nowa.empl = nowa.new employee('f','m',2);
在這種情況下,內部類實例具有對外部類實例的隱式引用(使用company.this內部雇員訪問它)。
如果要使類更獨立,則可以使員工成為狀態內部類,而無需引用外部類:
public static class employee
...
company nows = new company('g',2);
nowa.empl = new employee('f','m',2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.