如何从另一个 class 方法调用已创建对象的方法?
How to call a method of an already created object from another class method?
我正在尝试一个小程序,其中有两个 class 具有重载构造函数。
首先,我创建了第一个 class 的对象,将一个整数传递给它的构造函数。然后我创建第二个 class 的对象,将一个字符串传递给它的构造函数。
class Blabla 包含一个 运行() 方法,该方法应该调用 Bloblo 对象 t[= 的方法 afficher 26=] 已经在 main 方法中创建。但是,由于构造函数重载,我在执行此操作时遇到了麻烦,我应该传递一些参数。而 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,因为我必须将端口作为参数,但我不知道它是什么端口。
您至少有两个选择,要么将端口传递给 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);
}
}
只需使用组合:即让 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);
}
}
我正在尝试一个小程序,其中有两个 class 具有重载构造函数。 首先,我创建了第一个 class 的对象,将一个整数传递给它的构造函数。然后我创建第二个 class 的对象,将一个字符串传递给它的构造函数。
class Blabla 包含一个 运行() 方法,该方法应该调用 Bloblo 对象 t[= 的方法 afficher 26=] 已经在 main 方法中创建。但是,由于构造函数重载,我在执行此操作时遇到了麻烦,我应该传递一些参数。而 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,因为我必须将端口作为参数,但我不知道它是什么端口。
您至少有两个选择,要么将端口传递给 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);
}
}
只需使用组合:即让 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);
}
}