java对象的调用
① 如何在java中子类中父类的对象如何调用父类的方法
对于有继承关系的类,子类可以通过这个关键字调用父类中的方法。
比如:super.query();
此句话的意思是调用父类中的非私有方法query。
一般的用super关键字,调用类中的父类中重载构造方法。
比如:父类有个构造方法public
A(){},同时又写了一个重载的构造方法public
A(String
name);那么,在子类中可以使用super(name)指明调用父类的哪个构造方法进行实例化父类对象。
大概就是这样的!
② java里对象调用函数是什么意思,对象怎么调用它。对象掉用函数之后,对象会和调用之前出现什么不同
对象调用函数可以说这个对象引用这个方法(函数),方法就是对对象进行一定的处理然后可能返回一定的数据,对象一般可以通过。来调用eg:obe.go();
对象之后变成什么样,要看函数对他进行了什么处理
③ Java对对象采用的是值调用还是引用调用
您好:
Java中参数的传递方式有两种:传值和传引用。按值传递(call by value)表示方法接受的是调用者提供的值;按引用调用(call by reference)表示方法接受的是调用者提供的变量地址。
传值,参数为基本类型时,是采用传值的方式,示例如下:
供参考,希望对你有帮助!
④ 在java中一个对象调用某个方法需要满足哪些条件
如果是调用自己的成员函数,没什么条件。
如果调用的别的类中的成员函数,如果是该函数是非静态,需要先生成该类的对象再调用。
⑤ java对象是如何调用方法的(从内存方面解释)
首先在内存中生成对象dog,然后根据dog的eat方法签名找到方法区的eat方法。这个没有类型转换,相对来说比较简单,如果有类型转换的话,那么会出现动态绑定,会复杂一些的,关于内存方面的内容可以查看strutshome网站。
⑥ java如何调用一个方法内的对象
public int maybeNew(int index) {
if(index < 1) {
Mix4 m4 = new Mix4();
m4.counter = m4.counter + 1;
return 1
//System.out.println("m4.counter = " + m4.counter);
}
return 0;
}因为你是在这个方法里定义的m4,这里的m4为一个局部变量,意思是m4只在maybeNew这个方法的 if(index < 1) {}内才有效,其它地方用不到的,及时是在同一个方法的if外面都引用不到,这是java为局部变量定义的规则,没有为什么,这是必须得。
⑦ java调用so方法如何返回对象
虽然Java 严格按照值传递,但是精确的效果在传递基本类型还是引用类型之间是不同的。
当我们将一个原始类型传递给一个方法时,它将按值传递。但是当我们将一个对象传递给一个方法时,情况会发生巨大的变化,因为对象是通过有效调用的方式传递的。Java做这个有趣的事情,这是一种混合传递值和传递引用。基本上,函数不能更改参数,但函数可以通过调用其中的某些方法来让参数自行更改。
在创建类类型的变量时,我们只创建一个对象的引用。因此,当我们将此引用传递给方法时,接收它的参数将引用与参数引用的对象相同的对象。
这实际上意味着对象的行为就好像通过使用引用调用来传递给方法一样。
方法内部对象的改变确实反映在用作参数的对象中。
在Java中,我们可以将对象传递给方法。例如,请考虑以下程序:
// Java program to demonstrate objects
// passing to methods.
class ObjectPassDemo
{
int a, b;
ObjectPassDemo(int i, int j)
{
a = i;
b = j;
}
// return true if o is equal to the invoking
// object notice an object is passed as an
// argument to method
boolean equalTo(ObjectPassDemo o)
{
return (o.a == a && o.b == b);
}
}
// Driver class
public class Test
{
public static void main(String args[])
{
ObjectPassDemo ob1 = new ObjectPassDemo(100, 22);
ObjectPassDemo ob2 = new ObjectPassDemo(100, 22);
ObjectPassDemo ob3 = new ObjectPassDemo(-1, -1);
System.out.println("ob1 == ob2: " + ob1.equalTo(ob2));
System.out.println("ob1 == ob3: " + ob1.equalTo(ob3));
}
}
输出:
ob1 == ob2:true
ob1 == ob3:false
创建了三个对象'ob1','ob2'和'ob3':
ObjectPassDemo ob1 = new ObjectPassDemo(100,22);
ObjectPassDemo ob2 = new ObjectPassDemo(100,22);
ObjectPassDemo ob3 = new ObjectPassDemo(-1,-1);
在方法方面,声明了一个名为a的Foo类型的引用,并且它的初始值为null。
boolean equalTo(ObjectPassDemo o);
当我们调用方法equalTo时,引用'o'将被分配给作为参数传递的对象,即'o'将引用'ob2'作为以下语句执行。
System.out.println(“ob1 == ob2:”+ ob1.equalTo(ob2));
现在我们可以看到,'ob1'上调用了equalTo方法,'o'指的是'ob2'。由于'a'和'b'的值对于两个引用都是相同的,所以如果(条件)为真,那么将返回布尔值true。
if(oa == a && ob == b)
执行以下语句时,'o'将重新分配给'ob3'。
System.out.println(“ob1 == ob3:”+ ob1.equalTo(ob3));
现在我们可以看到,'ob1'上调用了equalTo方法,'o'指的是'ob3'。由于'a'和'b'的值对于两个引用都不相同,所以如果(条件)为假,那么else块将执行并且将返回false。
定义一个将其类的对象作为参数的构造函数
对象参数最常见的用途之一是构造函数。通常,在实践中,需要构建一个新对象,以便它最初与某个现有对象相同。为此,我们可以使用Object.clone()方法或定义一个将其类的对象作为参数的构造函数。下面的例子说明了第二个选项:
// Java program to demonstrate one object to
// initialize another
class Box
{
double width, height, depth;
// Notice this constructor. It takes an
// object of type Box. This constructor use
// one object to initialize another
Box(Box ob)
{
width = ob.width;
height = ob.height;
depth = ob.depth;
}
// constructor used when all dimensions
// specified
Box(double w, double h, double d)
{
width = w;
height = h;
depth = d;
}
// compute and return volume
double volume()
{
return width * height * depth;
}
}
// driver class
public class Test
{
public static void main(String args[])
{
// creating a box with all dimensions specified
Box mybox = new Box(10, 20, 15);
// creating a of mybox
Box myclone = new Box(mybox);
double vol;
// get volume of mybox
vol = mybox.volume();
System.out.println("Volume of mybox is " + vol);
// get volume of myclone
vol = myclone.volume();
System.out.println("Volume of myclone is " + vol);
}
}
输出:
Volume of mybox is 3000.0
Volume of myclone is 3000.0
返回对象
在java中,一个方法可以返回任何类型的数据,包括对象。例如,在以下程序中,incrByTen()方法返回一个对象,其中(整数变量)的值比调用对象中的值大10。
// Java program to demonstrate returning
// of objects
class ObjectReturnDemo
{
int a;
ObjectReturnDemo(int i)
{
a = i;
}
// This method returns an object
ObjectReturnDemo incrByTen()
{
ObjectReturnDemo temp =
new ObjectReturnDemo(a+10);
return temp;
}
}
// Driver class
public class Test
{
public static void main(String args[])
{
ObjectReturnDemo ob1 = new ObjectReturnDemo(2);
ObjectReturnDemo ob2;
ob2 = ob1.incrByTen();
System.out.println("ob1.a: " + ob1.a);
System.out.println("ob2.a: " + ob2.a);
}
}
输出:
ob1.a:2
ob2.a:12
⑧ 关于java中对象调用方法
内存里a和b指向的不是同一个对象,不是同一块内存。代码hh a=new hh();是表示在栈内存里分配一块区域给a,同时在堆内存里创建一个hh类的对象,然后让a指向这个对象。代码hh b=new hh();是表示在栈内存里分配一块区域给b,同时在堆内存里创建一个hh类的对象,然后让b指向这个对象。看你的hh里没有重写toString(),直接打印a和b应该是调用Object里面的toString(),打印出来的是类名和此对象的十六位哈希码,应该是不同的。然后我把你的代码自己运行了一下,打印出来的哈希码也是不一样的,不论是直接打印a和b由toString()方法默认返回的,还是调用两个对象中的hashCode()方法出来哈希码都是不相同的。a.equals(b)返回的是false说明a和b不相等,我查了一下API,根据API里面写的hashCode 的常规协定是:在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用hashCode 方法不 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。说明相同的对象,哈希码必须相同。不同的对象,哈希码不一定不同。我查了下资料,哈希码的生成函数不能保证不同对象生成的哈希码一定相同,有很小很小的几率会相同,不会被你装上了吧?还是其他class的干扰呢?你把重新建一个文件夹,把java文件复制进去,然后编译运行看下还是不是一样。我也是刚学java的,工作比较无聊我就学了下java,刚学了1个半月吧。能力有限,我把我懂得都写出来,希望能帮到楼主。
请采纳答案,支持我一下。
⑨ java对象数组如何调用
mian是程序的入口,如果你想在mian里面初始化,之后在其他的方法里面调用,要么把这个数组声明成static的,要么在之后的方法里面通过参数将数组对象传递。