[英]How to call a method of an already created object from another class method?
我正在嘗試一個小程序,其中有兩個帶有重載構造函數的類。 首先,我創建第一個類的對象,該對象將其整數傳遞給其構造函數。 然后,我創建第二個類的對象,並將其傳遞給構造函數一個字符串。
類BLABLA包含應該調用的主要方法已創建Bloblo對象T的方法afficher一個run()方法。 但是,由於構造函數已重載,所以我很難這樣做,我應該傳遞一些參數。 而且Blabla對象ts不知道最初傳遞給Bloblo構造函數的值: 2345 。
這是一個示例,因此我很清楚:
public class Trial {
public static void main(String[] args) {
Bloblo t = new Bloblo(2345);
Blabla ts = new Blabla("Imad");
ts.run();
}
}
public class Bloblo {
private int port;
public Bloblo(int leport)
{
port = leport;
System.out.println("au debut le port est: " + port);
}
public void afficher(String nom)
{
System.out.println("on va afficher dans BLOBLO: " + nom + "\net le port est: "+ port);
}
}
public class Blabla implements Runnable{
String Name = "";
public Blabla(String nom)
{
Name = nom;
}
public void run()
{
System.out.println("voici le nom: " + Name);
Bloblo obj = new Bloblo();
obj.afficher(Name);
}
}
這里的想法是我無法創建實例obj,因為我必須將port作為參數,並且我不知道它是哪個port。
只需使用組合即可:這使Bloblo成為Blabla的屬性。
public class Blabla implements Runnable{
String name = "";
Bloblo obj;
public Blabla(Bloblo obj, String name)
{
this.name = name;
this.obj = obj
}
public void run()
{
System.out.println("Here is the name: " + name);
obj.display(name);
}
}
public class Trial {
public static void main(String[] args) {
Bloblo t = new Bloblo(2345);
Blabla ts = new Blabla(t, "Imad");
ts.run();
}
}
您應該將對BloBlo的引用傳遞到BlaBla構造函數中,並將其存儲在字段中。
public class Trial {
public static void main(String[] args) {
Bloblo t = new Bloblo(2345);
Blabla ts = new Blabla("Imad", t);
ts.run();
}
}
public class Bloblo {
private int port;
public Bloblo(int leport)
{
port = leport;
System.out.println("au debut le port est: " + port);
}
public void afficher(String nom)
{
System.out.println("on va afficher dans BLOBLO: " + nom + "\net le port est: "+ port);
}
}
public class Blabla implements Runnable{
String Name = "";
Bloblo bloblo;
public Blabla(String nom, Bloblo b)
{
Name = nom;
bloblo = b;
}
public void run()
{
System.out.println("voici le nom: " + Name);
bloblo.afficher(Name);
}
}
您至少有兩個選擇,要么可以將端口傳遞給BlaBla,要么可以提供實例化的BloBlo
public class Blabla implements Runnable{
String Name = "";
BloBlo myBloBLo;
public Blabla(String nom, int leport)
{
Name = nom;
myBloBlo = new Bloblo(leport);
}
public Blabla(String nom, Bloblo bloblo)
{
Name = nom;
myBloBlo = bloblo;
}
public void run()
{
System.out.println("voici le nom: " + Name);
myBloBLo.afficher(Name);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.