Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 861|回复: 0

实例方法和类方法的使用示例及注意事项

[复制链接]

该用户从未签到

发表于 2011-9-14 20:49:04 | 显示全部楼层 |阅读模式
实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作,但类方法不能访问实例变量。实例方法必须由实例对象来调用,而类方法除了可由实例对象调用外,还可以由类名直接调用。另外,在类方法中不能使用 this 或 super。
  关于类方法的使用,有如下一些限制:
  (1) 在类方法中不能引用对象变量。
  (2) 在类方法中不能使用super、this关键字。
  (3) 类方法不能调用类中的对象方法。
  如果违反这些限制,程序就会发生编译错误。
  与类方法相比,实例方法几乎没有什么限制:
  (1) 实例方法可以引用对象变量(这是显然的),也可以引用类变量。
  (2) 实例方法中可以使用super、this关键字。
  (3) 实例方法中可以调用类方法。
类方法使用的例子。
//claSSMethodTest.java
class member{
   static int classVar;
   int instanceVar;
   static void setClassVar(int i){
      classVar=i;
      //instanceVar=i; //在类方法中不能引用实例成员。将这条语句注释掉,表示其为非法语句,如果出现在程序中,将无法通过编译。
   }
   static int getClassVar(){
      return classVar;
   }
   void setInstanceVar(int i){
      classVar=i;
      instanceVar=i;
   }
   int getInstanceVar(){
      return instanceVar;
   }
}
public class classMethodTest{
   public static void main(String args[]){
      member m1=new member();
      member m2=new member();
      m1.setClassVar(1);
      m2.setClassVar(2);
      System.out.println("m1.classVar="+m1.getClassVar()+" m2.classVar="+m2.getClassVar());
      m1.setInstanceVar(11);
      m2.setInstanceVar(22);
      System.out.println("m1.InstanceVar="+m1.getInstanceVar()+" m2.InstanceVar="+m2.getInstanceVar());
   }
}
运行结果为:
m1.classVar=2 m2.classVar=2
m1.InstanceVar=11 m2.InstanceVar=22
  从类成员的特性可以看出,我们可用 static 来定义全局变量和全局方法,这时由于类成员仍然封装在类中,故可以通过限制全局变量和全局方法的使用范围来防止冲突。另外,由于可以从类名直接访问类成员,所以访问类成员前不需要对它所在的类进行实例化。一个类的 main() 方法必须要用 static 来修饰,这是因为 Java 运行时系统在开始执行一个程序前,并没有生成类的一个实例,它只能通过类名来调用 main() 方法作为程序的入口。
  另外要注意的是,无论是类方法或实例方法,当被调用执行时,方法中的局部变量才被分配内存空间,方法调用完毕,局部变量即刻释放所占的内存。
回复

使用道具 举报

该用户从未签到

发表于 2011-10-9 08:23:17 | 显示全部楼层
谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-6-17 07:39 , Processed in 0.382900 second(s), 45 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表