首页 >> 百科

类方法和实例方法的区别有哪些

2022-05-03 百科 342 作者:考证青年

我们已经知道类体中的方法分为实例方法和类方法两种,修改后的就是类方法。下面我们来看看类方法和实例方法的区别。

类方法和实例方法

方法和实例方法的区别

当一个类创建一个对象时方法,该对象可以调用该类的方法。当类的字节码文件加载到内存中时,不会为类的实例方法分配入口地址。当类创建对象时,会为类中的实例方法分配入口地址,以便该类创建的任何对象都可以使用该实例方法。对象调用执行。

需要注意的是,当我们创建第一个对象时,为类中的实例方法分配入口地址,而当再次创建对象时,不再分配入口地址,即方法是由所有对象分配的,对象是共享的,当所有对象都不存在时,取消方法的入口地址。

对于类中的类方法,当类加载到内存时,会分配对应的入口地址。因此,类方法不仅可以被该类创建的任何对象调用和执行,还可以通过类名直接调用。类方法的入口地址直到程序退出才取消。

方法的入口地址是在类的字节码加载到内存时分配的。所以Java语言允许通过类名直接调用类方法,而不能通过类名调用实例方法

我们在讲类的时候强调,在Java语言中,类中的类方法不能操作实例变量,也不能调用实例方法。这是因为在类创建对象之前还没有分配实例成员变量。内存,实例方法没有入口地址。

下面小编给大家举个例子来说明这两种方法的区别

A级

{ 整数 x,y;

float f(int a){}

float g(int x1,int x2){}

}

B类

{ void main(args[])

{ A a1=新 A();

A.f(2,3); //合法。

a1.f(2,4); //合法。

a1.g(2,5); //合法。

A.g(3,2); //非法。

}

}

实例方法介绍

实例方法也称为对象方法

方法属于整个类,而实例方法属于类的一个对象。

因为类方法属于整个类,不属于类的任何对象,所以类方法方法体不能包含与类对象相关的内容。即类方法体有如下限制:

(1)类方法中不能引用对象变量;

(2)类的对象方法不能从类方法中调用;

(3) 类方法中不能使用 super 和 this 关键字。

(4)类方法不能被覆盖。

遵循这些限制将导致程序编译错误。

与类方法相比,对象方法的局限性很小:

(1)对象方法可以引用对象变量和类变量;

龟背竹图片和养殖方法方法_方法覆盖+方法重载_方法

(2)对象方法可以调用类方法

(3) super 和 this 关键字可以用在对象方法中。

在编程中,一些通用的和公共的方法与类的对象无关,所以它们经常被实现为类方法。如Java类库中的Math类,大部分数学运算都定义为静态方法。因此,您可以使用类方法将一些常用的、公共的方法放在适当的类中方法,以便它们井井有条。应用程序中的主要方法是类方法

例子:

类文员{

int ;//员工编号

;//员工姓名

;//工资

int =1000;//下一个员工编号

=280;//示例4-11

文员(姓名,){

=++;

// =++;

=新的(名称);

// =名字;

=;

}

}

{

void main([]args)

{

文员=new Clerk("张三",892.5);

文员=new Clerk("李四",1025.8);

aName=new(“网舞”);

文员=新文员(aName,2000);

.out.("姓名:"+.+"人数:"+.+"工资:"+.);

.out.("姓名:"+.+"人数:"+.+"工资:"+.);

.out.("姓名:"+.+"人数:"+.+"工资:"+.);

.out.("最低工资:员工 1="+.);

.out.("最低工资:员工 2="+.);

文员.=330;

.out.("养后");

.out.("最低工资:员工 1="+.);

方法_方法覆盖+方法重载_龟背竹图片和养殖方法方法

.out.("最低工资:员工 2="+.);

}

}

你可以参考这个源码程序,然后自己把注释掉的语句取消注释等等,运行起来就明白了。

Java 中的类方法

一、构造函数

(byte[ ] bytes):从字节数组构造字符串对象。

(char[ ] value):从 char 数组构造字符串对象。

(Sting):构造一个副本。即:复制一份。

( ):从数组构造字符串对象。

例子:

byte[] b = {'a','b','c','d','e','f','g','h','i','j'};

char[] c = {'0','1','2','3','4','5','6','7','8','9'};

sb = 新 (b); //

= new (b,3,2); //de

sc = 新 (c); //

= new (c,3,2); //34

= 新的 (sb); //

.out.("sb:"+sb);

.out.(":"+);

.out.("sc:"+sc);

.out.(":"+);

.out.(":"+);

输出结果:sb:

:de

sc:

:34

猜你感兴趣:

1.提高记忆力的几种方法

2.家务有哪些种类和分类方法

3.ajax 调用 java 方法

4.昙花的栽培方法及注意事项

5.创业类型及案例

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了