CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

帮忙解释下构造函数

楼主bsn0302(无秋落叶)2005-11-02 21:36:58 在 Java / J2EE / EJB / JMS 提问

public   class   TestedClass{  
  TeatedClass(){}//构造函数  
  private   int   attribute=20;  
  public   int   getAttribute(){  
      return   attribute:  
  }  
  public   void   setAttribute(int   value){  
  attribute=value;  
  }  
  }  
  请问这个空的{}放在这有什么用  
  另外return   atribute   这个值是返回给谁的 问题点数:20、回复次数:10Top

1 楼xuender(徐强)回复于 2005-11-02 21:53:22 得分 0

空的构造函数可以省略  
  读取属性atribute的时候调用getAttribute()Top

2 楼David_Wang_GuanJun(大卫)回复于 2005-11-02 21:58:14 得分 20

在Java中称作构造方法(contructor),在定义一个对象的时候会调用构造方法实例化该对象,在构造方法中一般作一些初始化的工作。当然你可以不写构造方法,系统会调用该类的父类的构造方法进行实例化!另外,Java中java.lang.Object类是所有类的父类!  
   
  TeatedClass(){}//表示实例化TeatedClass的时候不做任何事情  
  public   int   getAttribute(){  
      return   attribute:  
  }//这里的attribute返回给调用getAttribute()的变量  
   
  lz这里的这个测试程序似乎是Javabean吧,呵呵!  
  不正确的地方,还请各位达人指正!!!!!!  
   
  Top

3 楼bsn0302(无秋落叶)回复于 2005-11-02 22:42:47 得分 0

读取属性atribute的时候调用getAttribute()  
   
  不好意思,,我还是没看懂。。嘿嘿。。真不好意思啊!。Top

4 楼gaoxt1983(刑天战士)回复于 2005-11-02 23:01:36 得分 0

这个构造函数前面没有public,好像只能在package内部访问……Top

5 楼believefym(feng)回复于 2005-11-02 23:15:31 得分 0

看楼主的问题,基础不太行Top

6 楼yyouyou(一塌)回复于 2005-11-03 00:04:30 得分 0

private   int   attribute=20;这是私有变量.不能直接访问.只能通过函数getAttribute()来获得值.就是说你当你想知道attribute的值是多少的时候,你可以通过函数getAttribute()的返回值来确定.Top

7 楼fenger8293(http://www.pceggs.cn/pgComDefault.aspx?ID=191016)回复于 2005-11-03 09:30:58 得分 0

这还是得从封装说起:面向对象的一个特点就是封装,我不能让我的类的使用者(可能是别人)直接去访问我的内部变量,而是使用set和get方法来间接的访问。所以类通过这两种方法来更改属性,象在其它语言里,比如delphi中是一个属性,不论是read还是write都是使用属性名来访问,但其实内部也还是用某种set或get方法(或者是类似的方法)来设置对象的属性的。构造函数一般做初始化变量的工作,比如你的上面的类,如果不时在声明时给它值,这样你创建对象后直接调用它的get方法得到的数据会是什么样的呢,可能是随机的,所以可以把attribute=20放到构造函数TestedClass(你上面拼错了)里。Top

8 楼liufanjava(凡人)回复于 2005-11-03 10:20:51 得分 0

大概楼主把构造函数前面的public漏掉了吧?一般在定义构造函数时都是public的。(偶也是菜菜,不知说的对不)那个大括号是一定要要的,因为之所以称它为构造函数是因为它是一个函数,要有函数体,虽然这里的函数体为空,也不可以省掉它,这是原则问题。其实这样的没有函数体的构造函数完全可以不写,它会被自动调用的,只有当函数体中有东东的时候才有意义。  
  当我们在读取atribute的属性时会调用getAtribut()  
  例如:public   String   toString(){  
                          return   getAtribut();  
      返回值返回到其所在函数被调用的地方,用返回值来替换其所在函数。所以atribute返回到其所在的函数被调用的地方(如上面的getAtribute()   ),用atribute的值来替换getAtribute().说得很详细了,不知你懂了吗?Top

9 楼bsn0302(无秋落叶)回复于 2005-11-03 12:31:11 得分 0

是啊!哎。。刚开始自学啊!基础不行。。Top

10 楼bsn0302(无秋落叶)回复于 2005-11-03 12:32:26 得分 0

恩,懂了,谢谢各位前辈啊!。。Top

相关问题

  • 帮解释一下,这个构造函数
  • 问一下构造函数
  • 什么叫做拷贝构造函数啊,谁能帮我解释一下
  • 解释下函数
  • 构造函数
  • 构造函数
  • 构造函数??
  • 构造函数
  • 函数构造
  • @@@@@@ 构造函数 @@@@@

关键词

  • 函数
  • 属性
  • 构造
  • 调用
  • atribute
  • getatribute
  • teatedclass
  • 变量
  • 方法
  • 类

得分解答快速导航

  • 帖主:bsn0302
  • David_Wang_GuanJun

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo