java的类方法参数传递数据问题
小弟初学java开始学习常用语句和对象的理念都还可以可是到了带参数的方法就有点蒙,不太明白这个带参数的方法如何实现数据的传递我举个例子:我有个用户类,里面有2个客户数组,...
小弟初学java 开始学习常用语句和对象的理念都还可以 可是到了带参数的方法就有点蒙, 不太明白 这个带参数的方法 如何实现数据的传递
我举个例子:我有个用户类,里面有2个客户数组,我想实现修改客户信息和添加客户信息 我可以做到查找数据信息,但是当我在修改后,回到客户信息时 ,还是那两个原来的信息,没有改变!我知道我只是改变了对象的值,也没有传递!希望java达人解答下!!说的简单易懂!!谢谢各位!!
可追分数 谢谢! 展开
我举个例子:我有个用户类,里面有2个客户数组,我想实现修改客户信息和添加客户信息 我可以做到查找数据信息,但是当我在修改后,回到客户信息时 ,还是那两个原来的信息,没有改变!我知道我只是改变了对象的值,也没有传递!希望java达人解答下!!说的简单易懂!!谢谢各位!!
可追分数 谢谢! 展开
5个回答
展开全部
哥们,给分吧,看看我写得例子给你.
我写得是管理一个客户组,你可以改成管理两个.
新建一个名为 ClientManager.java得文件,拷贝下面得信息,然后编译执行.
import java.util.Hashtable;
import java.util.Enumeration;
public class ClientManager
{
private Hashtable cs;
public ClientManager()
{
cs = new Hashtable(10);
}
public void addClient(Client c)
{
cs.put(c.getName(),c);
}
public void addClient(String name,int age,String address,String job,String tel,String email)
{
cs.put(name,new Client(name,age,address,job,tel,email));
}
public void delClient(String name)
{
cs.remove(name);
}
public Client findClient(String name)
{
return (Client)cs.get(name);
}
public void printAllClient()
{
Client c = new Client();
Enumeration enums = cs.elements();
while(enums.hasMoreElements())
{
c = (Client)enums.nextElement();
this.printClent(c);
}
}
public void printClent(Client c)
{
System.out.println("name="+c.getName()+" age="+c.getAge()+" address="+c.getAddress()+" job="+c.getJob()+" tel="+c.getTel()+" email="+c.getEmail());
}
public static void main(String [] arguments)
{
Client c1 = new Client("aa",11,"aa","aa","aa","aa");
Client c2 = new Client();
c2.setName("bb");
c2.setAge(22);
c2.setTel("bb");
c2.setAddress("bb");
c2.setJob("bb");
c2.setTel("bb");
ClientManager cM = new ClientManager();
cM.addClient(c1);
cM.addClient(c2);
cM.addClient("cc",33,"cc","cc","cc","cc");
System.out.println("打印出所有客户信息:");
cM.printAllClient();
System.out.println("查找用户名为cc得客户信息并打印:");
Client c3 = cM.findClient("cc");
if(c3 != null)
cM.printClent(c3);
System.out.println("删除用户名为cc得客户,然后打印所有客户信息:");
cM.delClient("cc");
cM.printAllClient();
}
}
class Client
{
private String name;
private int age;
private String address;
private String job;
private String tel;
private String email;
public Client()
{
}
public Client(String name,int age,String address,String job,String tel,String email)
{
this.name=name;
this.age=age;
this.address=address;
this.job=job;
this.tel=tel;
this.email=email;
}
public void setName(String name)
{
this.name=name;
}
public void setAddress(String address)
{
this.address=address;
}
public void setJob(String job)
{
this.job=job;
}
public void setTel(String tel)
{
this.tel=tel;
}
public void setEmail(String email)
{
this.email=email;
}
public void setAge(int age)
{
this.age=age;
}
public String getName()
{
return this.name;
}
public String getAddress()
{
return this.address;
}
public String getJob()
{
return this.job;
}
public String getTel()
{
return this.tel;
}
public String getEmail()
{
return this.email;
}
public int getAge()
{
return this.age;
}
}
我写得是管理一个客户组,你可以改成管理两个.
新建一个名为 ClientManager.java得文件,拷贝下面得信息,然后编译执行.
import java.util.Hashtable;
import java.util.Enumeration;
public class ClientManager
{
private Hashtable cs;
public ClientManager()
{
cs = new Hashtable(10);
}
public void addClient(Client c)
{
cs.put(c.getName(),c);
}
public void addClient(String name,int age,String address,String job,String tel,String email)
{
cs.put(name,new Client(name,age,address,job,tel,email));
}
public void delClient(String name)
{
cs.remove(name);
}
public Client findClient(String name)
{
return (Client)cs.get(name);
}
public void printAllClient()
{
Client c = new Client();
Enumeration enums = cs.elements();
while(enums.hasMoreElements())
{
c = (Client)enums.nextElement();
this.printClent(c);
}
}
public void printClent(Client c)
{
System.out.println("name="+c.getName()+" age="+c.getAge()+" address="+c.getAddress()+" job="+c.getJob()+" tel="+c.getTel()+" email="+c.getEmail());
}
public static void main(String [] arguments)
{
Client c1 = new Client("aa",11,"aa","aa","aa","aa");
Client c2 = new Client();
c2.setName("bb");
c2.setAge(22);
c2.setTel("bb");
c2.setAddress("bb");
c2.setJob("bb");
c2.setTel("bb");
ClientManager cM = new ClientManager();
cM.addClient(c1);
cM.addClient(c2);
cM.addClient("cc",33,"cc","cc","cc","cc");
System.out.println("打印出所有客户信息:");
cM.printAllClient();
System.out.println("查找用户名为cc得客户信息并打印:");
Client c3 = cM.findClient("cc");
if(c3 != null)
cM.printClent(c3);
System.out.println("删除用户名为cc得客户,然后打印所有客户信息:");
cM.delClient("cc");
cM.printAllClient();
}
}
class Client
{
private String name;
private int age;
private String address;
private String job;
private String tel;
private String email;
public Client()
{
}
public Client(String name,int age,String address,String job,String tel,String email)
{
this.name=name;
this.age=age;
this.address=address;
this.job=job;
this.tel=tel;
this.email=email;
}
public void setName(String name)
{
this.name=name;
}
public void setAddress(String address)
{
this.address=address;
}
public void setJob(String job)
{
this.job=job;
}
public void setTel(String tel)
{
this.tel=tel;
}
public void setEmail(String email)
{
this.email=email;
}
public void setAge(int age)
{
this.age=age;
}
public String getName()
{
return this.name;
}
public String getAddress()
{
return this.address;
}
public String getJob()
{
return this.job;
}
public String getTel()
{
return this.tel;
}
public String getEmail()
{
return this.email;
}
public int getAge()
{
return this.age;
}
}
展开全部
一起讨论啊,我也刚学java,还没学到传参那里,但我觉得应该是传值与传引用的问题
你传的是什么类型的啊?底下的小程序可能对你有帮助
import java.lang.StringBuffer;
import java.io.PrintWriter;
public class text{
public static void p(StringBuffer x){
x.append(" world");
}
public static void main(String[] args){
StringBuffer a = new StringBuffer("hello!");
StringBuffer b = a;
p(b);
System.out.println("a is "+a);
}
}
结果是:a is hello! world
但是把StringBuffer换成String就不行了,我知道原因但不知道解决方法,难道只有StringBuffer可以修改引用指向么?
你可以把你的程序贴上来看看哦哦 0 0
你传的是什么类型的啊?底下的小程序可能对你有帮助
import java.lang.StringBuffer;
import java.io.PrintWriter;
public class text{
public static void p(StringBuffer x){
x.append(" world");
}
public static void main(String[] args){
StringBuffer a = new StringBuffer("hello!");
StringBuffer b = a;
p(b);
System.out.println("a is "+a);
}
}
结果是:a is hello! world
但是把StringBuffer换成String就不行了,我知道原因但不知道解决方法,难道只有StringBuffer可以修改引用指向么?
你可以把你的程序贴上来看看哦哦 0 0
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以把你的错误的程序拿过来改一下
这样说不是怎么明白的
这样说不是怎么明白的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能说的更详细一些吗?没看明白!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
??XIANG XI
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询