对象引用方法
㈠ 在C#中怎样对一个自己写的方法进行对象引用
lz基础知识有待提高。
C#函数分为静态与实例两种,静态方法属于类版本身,实例方法属于类的实例,必须要实例化才能权使用。例如:
class A
{
public void Method1()
{
//some code
}
public static void Method2()
{
//some code
}
}
调用时候要这样:
A.Mehtod2(); //调用静态方法
A a = new A();
a.Method1();//调用实例方法
㈡ java对象引用方法获得的还是一个对象吗 下面一个例子bi.getBookName()他是一个对象吗
当然是对象了。
但是下面这句话是错误的。
shopcaritem.getProName()=bi.getBookName();
㈢ c++ 类中对象的引用
引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对c语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;
引用说明:
(1)&在此不是求地址运算,而是起标识作用。
(2)类型标识符是指目标变量的类型。
(3)声明引用时,必须同时对其进行初始化。
(4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。
int a=2,int &ra=a;
a为目标原名称,ra为目标引用名。给ra赋值:ra=1; 等价于 a=1;
(5)对引用求地址,就是对目标变量求地址。&ra与&a相等。即我们常说引用名是目标变量名的一个别名。别名一词好像是说引用不占据任何内存空间。但是编译器在一般将其实现为const指针,即指向位置不可变的指针。即引用实际上与一般指针同样占用内存。
(6)不能建立引用的数组。因为数组是一个由若干个元素所组成的集合,所以无法建立一个由引用组成的集合。但是可以建立数组的引用.
例如: int& ref [3]= {2,3,5};//声明ref引用的数组错误
但是可以这样写:
const int (&ref)[3] ={2,3,5}; //gcc编译的时候加上选项 -std=c++0x
ref[0] = 35; //错误
为什么要加上const ,因为{2,3,5}此时是个字面值数组,是保存在代码段里,只读的属性,如果不加,编译错误,而且后面对ref[0]的赋值也不会成功.
需要特别强调的是引用并不产生对象的副本,仅仅是对象的同义词。因此,当下面的语句执行后:
pt1.offset(12,12);
pt1和pt2都具有(12,12)的值。
引用必须在定义时马上被初始化,因为它必须是某个东西的同义词。你不能先定义一个引用后才
初始化它。例如下面语句是非法的:
Point &pt3;
pt3=pt1;
那么既然引用只是某个东西的同义词,它有什么用途呢?
下面讨论引用的两个主要用途:作为函数参数以及从函数中返回左值。
㈣ 举例说明对象属性的引用方法
举例是举生活中的例子吗?
比如:
在地球上的“人类”就可以看成一个类;而有个人叫回“小白”,“小白”就是答“人类”这个类实例化出来的一个对象,“小白”是男人,那么“性别”就是“人类”的一个属性,而小白会“做饭”,“做饭”就可以看成是一个方法,这个方法可以有返回值,比如运行该方法返回一盘菜,那么这个“做饭”这个方法就是一个能返回值的方法啦!
㈤ Java大神快来,对象引用方法出错
对象client1是成功生成了的,只是对象的set方法没有正确调用到,报错是因为在Client类里面找不到能够正常访问到的set方法。所以看看那些set方法有没有哪里写错了;如果编码没错,也不排除编译器反应迟钝,可以重启编译器(这种几率并不大)
㈥ 一个类的对象怎么调用另一个类的方法
java类有两种方法一种是类方法就是用static修饰的,一种是实例方法回,就是没有static修饰的方法。类方法可以同时类名答.方法名的方式调用。而实例方法必须先生存类的实例在通过实例.方法名的方式调用。例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MethodCall
{
public static void main(String[] args)
{
Test.sayStatic();
Test test = new Test();
test.sayInstance();
}
}
class Test
{
public static void sayStatic()
{
System.out.println("这是一个静态方法。");
}
public void sayInstance()
{
System.out.println("这是一个实例方法。");
}
}
㈦ java中方法可以修改对象引用作为参数的状态。这句话如何理解
就是引用对象传参,传到函数里边你在函数里修改它,实参也会变
比如数组是引用对象吧
void foo(int[] a)有这么一个函数,你在函数体里a[0] = 3;
然后其他地方调用foo
int[] a = new int[]{1,2,3,4};
foo(a);
// 到这里结果a[0]就变成3了
你例子里的x和harry你可以看作是一个指代,它们两指向同一快内存,在函数里x修改了它指向的地方,也就相当于harry指向的地方被修改了
下面->表示指向,比如a->xxx,a指向xxx这块内存
a -> Employee(A)
b -> Employee(B)
传参到swap里
a = x -> Employee(A)
b = y -> Employee(B)
swap结束时
b = x -> Employee(B)
a = y -> Employee(A)
也就是说,swap只是交换x和y的引用,它们两引用的对象被交换了,然后x和y是swap内部的局部变量,函数结束就over了
对调用者传入的a和b没有实质上的改变
㈧ java对象的引用.方法和对象.方法有何区别
以下内容是我自己的话,没有教科书的标准.
对象是某个类的实例,拥有变内量和方法等属性.
方法是用于完容成某个功能的代码段,类似于数学中的函数.只要输入某个x,则会经过一定的处理返回y值.这个x作为输入项叫做方法的参数. 引用方式是传递参数的方式之一.如果某个对象作为参数时,只能通过引用传递.引用相当于给参数起了一个别名,传入后并没有开辟新的内存空间.如果在方法中修改了引用的值,则相当于修改了原对象中的值.
先打这些 不懂再问
我看到你问别人的那个了,这里面实际只有1个真正存在于内存的student 也就是c,剩下的ab都是指向这个c的类似于c语言中的指针.你用run方法跑的还是c
㈨ 关于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个半月吧。能力有限,我把我懂得都写出来,希望能帮到楼主。
请采纳答案,支持我一下。