求大神解答这个构造方法,有点不明白。

kingofdancer 2017-03-21 08:35:55
package 大作业2;

public class Circle {


private int radius;

public int getRadius() {
return radius;
}

public void setRadius(int radius) { //这个地方为啥要在括号里加东西啊
this.radius = radius; //这个地方的 两个radius 有啥区别啊?意义在哪儿啊?
}

public Circle(int radius) { //这两句最搞不懂,为什么要把这个类拿出来啊?和下面的那个Circle有啥区别啊~~

this.radius = radius;
}

public Circle() {

}
public double area(){
return radius*radius;
}


}


问题就是我红色部分的, 我是一个初学者,但是我爱JAVA,特来此求解,希望大神解答><
...全文
367 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
哔啵啵哔啵哔 2017-03-23
  • 打赏
  • 举报
回复
public void setRadius(int radius) { this.radius = radius; } 这个方法是用来给这个类的对象中变量radius赋值用的,this代表了当前对象,this.radius就是当前对象的radius变量值,后面的radius和括号里的radius是一样的,你赋值的时候,想赋值多少,就在括号里写多少。 public Circle(int radius) { this.radius = radius; } 这个地方是重载了构造方法,就是说你实例化此类的对象时,可以直接给变量radius赋值,也可以不给变量radius赋值,就像我可以创建一个圆形对象,也可以创建一个半径是10的圆形对象,这两种方法都可以实例化对象,任意取用。
Super-小龙 2017-03-23
  • 打赏
  • 举报
回复
建议楼主看《java疯狂讲义》
CG国斌 2017-03-23
  • 打赏
  • 举报
回复
第一个问题:一般咱们创建类,定义完变量后,可以直接 Generate 生成 set 和 get ,其中的 get 方法就跟你写的那个一样,就是问了获取变量的,this 指当前类的成员变量; 第二个问题:构造函数加参数,是为了方便咱们将类进行实例化,或者在有类继承它的时候,可以直接调用有参的构造函数。 我写了一篇专门介绍构造函数的博文,有兴趣的话,可以看看,链接如下: http://blog.csdn.net/qq_35246620/article/details/55096625
swing wang 2017-03-22
  • 打赏
  • 举报
回复
引用 4 楼 kingofdancer 的回复:
[quote=引用 3楼Java_zero 的回复:]楼主才学JAVA吧,刚刚学面向对象时间不长对不对?你发的这段代码包含四个知识点 第一,普通类成员变量的访问权限,就是private这个是私有的意思,只有本类里面才能使用 第二,要对这种成员变量操作(赋值,取值),就要使用公开的操作方法,set和get方法。 第三,构造器,默认是无参空白的构造器 第四是构造器的重载,这个可能面向对象学完才会有体会,就是创建对象的时候我可以通过调用不同的构造器,来创建稍微有点不同的同一类对象。 以上就是本人拙见,敬请各位大神批评。
谢谢,我基本懂了,所以说构造方法,就是 Public bank(){ This ("",0,0) } Public bank(string name,int num,float balance) 这就是一个构造方法吗?[/quote] 是的,是这样的
swing wang 2017-03-22
  • 打赏
  • 举报
回复
楼主才学JAVA吧,刚刚学面向对象时间不长对不对?你发的这段代码包含四个知识点 第一,普通类成员变量的访问权限,就是private这个是私有的意思,只有本类里面才能使用 第二,要对这种成员变量操作(赋值,取值),就要使用公开的操作方法,set和get方法。 第三,构造器,默认是无参空白的构造器 第四是构造器的重载,这个可能面向对象学完才会有体会,就是创建对象的时候我可以通过调用不同的构造器,来创建稍微有点不同的同一类对象。 以上就是本人拙见,敬请各位大神批评。
kingofdancer 2017-03-22
  • 打赏
  • 举报
回复
引用 3楼Java_zero 的回复:
楼主才学JAVA吧,刚刚学面向对象时间不长对不对?你发的这段代码包含四个知识点 第一,普通类成员变量的访问权限,就是private这个是私有的意思,只有本类里面才能使用 第二,要对这种成员变量操作(赋值,取值),就要使用公开的操作方法,set和get方法。 第三,构造器,默认是无参空白的构造器 第四是构造器的重载,这个可能面向对象学完才会有体会,就是创建对象的时候我可以通过调用不同的构造器,来创建稍微有点不同的同一类对象。 以上就是本人拙见,敬请各位大神批评。
请问,public class circle{ 和 Public circle(){ 这俩啥区别啊
kingofdancer 2017-03-22
  • 打赏
  • 举报
回复
请问,public class circle{ 和 Public circle(){ 这俩啥区别啊
kingofdancer 2017-03-22
  • 打赏
  • 举报
回复
引用 5楼郝江波 的回复:
重新学习一下java基础吧,this代表这个类本身 , this.xx = xx 意思就是说 你这个类的xx属性 == 传进来的xx属性。
哦哦懂了,谢谢
郝江波 2017-03-22
  • 打赏
  • 举报
回复
重新学习一下java基础吧,this代表这个类本身 , this.xx = xx 意思就是说 你这个类的xx属性 == 传进来的xx属性。
kingofdancer 2017-03-22
  • 打赏
  • 举报
回复
引用 3楼Java_zero 的回复:
楼主才学JAVA吧,刚刚学面向对象时间不长对不对?你发的这段代码包含四个知识点 第一,普通类成员变量的访问权限,就是private这个是私有的意思,只有本类里面才能使用 第二,要对这种成员变量操作(赋值,取值),就要使用公开的操作方法,set和get方法。 第三,构造器,默认是无参空白的构造器 第四是构造器的重载,这个可能面向对象学完才会有体会,就是创建对象的时候我可以通过调用不同的构造器,来创建稍微有点不同的同一类对象。 以上就是本人拙见,敬请各位大神批评。
谢谢,我基本懂了,所以说构造方法,就是 Public bank(){ This ("",0,0) } Public bank(string name,int num,float balance) 这就是一个构造方法吗?
kingofdancer 2017-03-22
  • 打赏
  • 举报
回复
引用 9楼Java_zero 的回复:
[quote=引用 4 楼 kingofdancer 的回复:] [quote=引用 3楼Java_zero 的回复:]楼主才学JAVA吧,刚刚学面向对象时间不长对不对?你发的这段代码包含四个知识点 第一,普通类成员变量的访问权限,就是private这个是私有的意思,只有本类里面才能使用 第二,要对这种成员变量操作(赋值,取值),就要使用公开的操作方法,set和get方法。 第三,构造器,默认是无参空白的构造器 第四是构造器的重载,这个可能面向对象学完才会有体会,就是创建对象的时候我可以通过调用不同的构造器,来创建稍微有点不同的同一类对象。 以上就是本人拙见,敬请各位大神批评。
谢谢,我基本懂了,所以说构造方法,就是 Public bank(){ This ("",0,0) } Public bank(string name,int num,float balance) 这就是一个构造方法吗?[/quote] 是的,是这样的[/quote]谢谢大哥
kingofdancer 2017-03-22
  • 打赏
  • 举报
回复
引用 10楼a1628393131 的回复:
public class circle{ 代表的是创建一个类,class是类的关键字,circle是类名 Public circle(){这个是circle这个类的构造方法
卧槽我对这个问题困扰了好久,谢谢了!
a1628393131 2017-03-22
  • 打赏
  • 举报
回复
public class circle{ 代表的是创建一个类,class是类的关键字,circle是类名 Public circle(){这个是circle这个类的构造方法
kingofdancer 2017-03-21
  • 打赏
  • 举报
回复
引用 1楼China小嘿 的回复:
public Circle(int radius) { this.radius = radius; } 这句 是构造方法,用于创建对象时初始化成员变量,一般不写的话会有一个默认的无参构造器 public void setRadius(int radius) { this.radius = radius; } 这句是封装后的成员变量赋值语句,封装后私有化成员变量无法直接被外界调用,所以需要用方法来进行赋值 和获取
谢谢你呀!我基本上懂了,但是还有个问题, Public class circle (){ 和 Public circle{ 这俩东西, 第一个是构造方法,可以在括号里写运算方法, 第二个是一个类, 是这样吗?
China小嘿 2017-03-21
  • 打赏
  • 举报
回复
public Circle(int radius) { this.radius = radius; } 这句 是构造方法,用于创建对象时初始化成员变量,一般不写的话会有一个默认的无参构造器 public void setRadius(int radius) { this.radius = radius; } 这句是封装后的成员变量赋值语句,封装后私有化成员变量无法直接被外界调用,所以需要用方法来进行赋值 和获取

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧