java对象作为参数问题

最通俗的和你解释:
第一个参数是对象,传递过去的是引用(即地址),当这个对象里面的字符串改变后,不影响这个对象的地址,即对象地址没有变,始终可以找到里面改后的字符串
第二个参数是字符串,传递的依然是引用,当在test函数中改变字符串时,因为字符串时不可变的,那么会改变这个str的地址值,使其指向新开辟的区域“world”,原来主函数的str没有变,而test中的str指向了另个字符串【请牢记,虽然是址传递,看似都会变,这里由于两个原因,一是主函数和test中的str一开始指向的是同一空间,但是,它们各自是存储在不同空间的;二是字符串是不变的,它们指向的字符串不会改变,test中的str会指向其他新开辟的地方】!!!
希望你能懂。

㈡ java中对象类型的参数传递

因为Java里方法参数的复传递制实际上只有值传递(不管基本类型或引用类型),对基本类型来说是把其值传递了一份过去,而对引用类型来说实际是把引用地址的值复制一份传递了过去。

另外,只有用new方法创建的对象的实际成员数据是存放在堆里面的,而其他方法内部定义的变量都存放在栈中,一旦出了方法的范围就失效,会被内存回收。

知道了以上两点,就可以分析了,swap方法里t1,t2,temp都是存放在栈里的只保存引用类型地址的变量,不管他们怎么交换,实际上不会改变堆里面的内容,而main方法里的time1, time2的引用类型虽然其地址仍在栈中,而实际数据在堆中,程序中没有任何改变其内容的语句,因此,不会产生交换。

㈢ java中的参数(对象)是怎样传递的

基本类型传值,比如int,float,char,double

引用类型传引用,也就是地址,比如数组,自己创建的类的对象,

传值对原来的值没有影响,传引用有影响。传值直接把原来的数拷贝一份,和原来的数没有关系了。传引用,比如对象是a,a指向一个地址,这个地址里放它的各种属性,你把a传过去就相当于告诉程序要修改那个地址里的东西,不改变a的值(a本身是个地址),a还是指向那个地址,不过地址里的数据会发生改变,会影响到a.属性的值。

最后,有一个特殊的,String,它虽然是引用类型,传的是地址,但是对它进行操作不影响原来的字符串,因为它定义的时候是用final修饰的,一修改就自动创建新的副本。

㈣ java中如何用对象作为方法的参数

函数原型:类名 函数名(类名 对象名);
Object function(Object 对象名)
{
//************************************
}

㈤ java 对象传参

不懂你在问什么?
如果你能说清楚问什么,我就能帮你处理。
==========
你只要一个方法,而且这个方法可以接受不同类型的参数。那么你只能重载了!
如果这样不同类型的参数是同一接口的实现,或者同一类的子类,那样也可以。
==========
我们处理问题时,一定要考虑java这门语言的能力!你的思想不能飞到它能力之外去!也许有其它的方法可以处理你的问题,并且在java语言的能力之内,我建议你把真正的问题说出来!也许并不需要你现在的处理方案,也许会处理的更好!

㈥ 如何理解java将对象作为参数

根据以下几点来理解对象参数:
第一,基本数据类型(int,long,float等)作为参数传递,无论在方版法中权对该参数如何修改,都不会改变原值,即调用完方法后,值不会改变。
举个例子:

m(int a){
a=3;

}

int a=0;
m(a);

System.out.println(a);

此时,a的值为0,值不会改变。

第二,对象(StringBuilder)作为参数传递时,在方法中对对象的值进行修改,会改变原来对象中的内容。
同样地:

m(StringBuilder s ){
s.append("b");

}

StringBuilder s = new StringBuilder();

s.append("a");

m(s);

System.out.println(s.toString());
此时,打印s的值为 ab,对象内容由 “a”变成 “ab”。

㈦ java new对象带参数什么意思

当JVM创建一个对象时,首先都要初始化一遍,先从变量,然后构造函数,也就是没有返回值的方法,例如 A的构造函数是 public A(){},其中A可以带参数,也可以不带,你的例子中因为有参数所以A()要带参数 ,也就是public A(String s){},其实也就是为了初始化变量。如:
class A{
private String s;
public A(String s){
this.s = s;
}
}
创建对象是 A b=new A("5");
此时 b调用s的值就是5了;

㈧ java有参方法对象做参数

楼主我花了点心思给你写个用对象数组写的。提供你参数。

不知道你会不会吃力。。不过这个方法比较优先,希望你能看进去。
这里用到对象数组。
用到对象当参数。其他的,我就不多说了。上代码

/**
* 会员类
* @author ansn001
*
*/
public class Customer {
public String custNo; //会员号
public int score; //会员积分
}

import java.util.Scanner;

/**
* 会员管理类
* @author ansn001
*
*/
public class CustomerManager {
// 假设长度为10,也就是存储三个会员,长度自己设置
Customer custs[] = new Customer[3];

Scanner input=new Scanner(System.in);

/**
* 给对象数组赋值
*/
public void initial() {

//循环保存十个会员信息
for (int i = 0; i < custs.length; i++) {
//创建对象来保存信息
Customer cust = new Customer();
System.out.println("请输入第"+ i +"个会员的会员号:");
//赋值
cust.custNo=input.next();
System.out.println("请输入第"+ i +"个会员的会积分:");
cust.score=input.nextInt();

//给数组赋值
custs[i]=cust;
}
}

/**
* 显示会员信息
*/
public void show(){
for(int i=0;i<custs.length;i++){
if(custs[i]==null){
break;
}
System.out.println("第"+ i +"个会员的信息如下:");
//通过对象点操作属性来取值
System.out.print("会员号:"+custs[i].custNo+"\t会员积分:"+custs[i].score);
System.out.println("");
}
}
/**
* 根据会员号查询会员信息
* @param custNo
* @return
*/
public Customer getCustByCustNo(String custNo){
Customer cust=null;
for(int i=0;i<custs.length;i++){
if(custs[i]==null){
break;
}
if(custs[i].custNo.equals(custNo)) {
cust=custs[i];
break;
}
}
return cust;
}
}

测试类
import java.util.Scanner;

public class Test {

public static void main(String[] args) {
Scanner input=new Scanner(System.in);
CustomerManager manager=new CustomerManager();
//初始赋值
manager.initial();
//显示
manager.show();
System.out.println("请输入要查询的会员号:");
String custNo=input.next();

//查询
Customer cust=manager.getCustByCustNo(custNo);

if(cust!=null){
System.out.println("该会员的信息为:");
System.out.print("会员号:"+cust.custNo+"\t会员积分:"+cust.score);
}else{
System.out.println("查无此会员信息");
}
}
}

㈨ JAVA 如何将对象作为参数使用

最通俗的和你解释:
第一个参数是对象,传递过去的是引用(即地址),当这个对象专里面的字符串改属变后,不影响这个对象的地址,即对象地址没有变,始终可以找到里面改后的字符串
第二个参数是字符串,传递的依然是引用,当在test函数中改变字符串时,因为字符串时不可变的,那么会改变这个str的地址值,使其指向新开辟的区域“world”,原来主函数的str没有变,而test中的str指向了另个字符串【请牢记,虽然是址传递,看似都会变,这里由于两个原因,一是主函数和test中的str一开始指向的是同一空间,但是,它们各自是存耽礌槽啡噩独茶扫偿激储在不同空间的;二是字符串是不变的,它们指向的字符串不会改变,test中的str会指向其他新开辟的地方】!!!
希望你能懂。

㈩ 关于JAVA的方法参数是类对象的问题

public void f(A a){} //假设A是一个类
可以传入new A;这就是把类的对象给传入进去了,我来简单的剖析一下。
A a=new A();
A是类型,a是对象变量,new A();构建对象,a就可以访问A的成员了。
如果A有子类,假设是B,也可以这样传入 A a=new B();这个是父类引用子类的内存地址,你可以这样认为byte b=10;int a=b;int比byte大,可以接受byte并且自己转换过来。但是类型是A就只能看到A类下面的成员。
还有一种强制转换,传递对象过去,有限制的!比如方法要求子类对象B,调用时候,传递子类没问题,如果是父类引用子类呢?那么就把父类强转为子类传递,如果是new父类转换子类是错误的,因为内存地址不一样,怎么收?父类引用子类,在强制转换为子类,有点绕,知道多态就明白了。