java 一个类的构造函数对成员变量x,y进行初始化,然后这个类里的成员函数想要用想,y的值怎么用

java 一个类的构造函数对成员变量x,y进行初始化,然后这个类里的成员函数想要用想,y的值怎么用,第1张

这个要分情况了,如果是该成员函数的形式参数名与成员变量名是一样的,那么调用成员量就要加上this,这里你要明白this的作用:表示当前调用该方法的对象。如果该成员函数的形式参数名与成员变量名是不一样,就不用加上this。 还有注意this的使用方法就是:不能再用statci修饰的函数里面使用。举个列子吧:

class Test

{

int x;

int y;

public Test(x,y){

thisx=x;//这里为什么用this,是因为构造函数的参数名和成员变量名一样

thisy=y;

}

public boolean a(){

if(x>y)//这里为什么没有用this,因为这里没有与成员变量名相同参数名

//当然这里也可以为if(thisx>thisy)

{

return true;

}

else

{

return false;

}

}

public int b(int x){

return x-thisx;//这里一定要写this,因为这里的参数名和成员变量名一样,为了区别

//必须加上this

}

作用范围不同,在里面的只在构造函数里面起作用,外面的话整个类都可以调用它,类成员还有不同的修饰符,被访问的范围也不同。觉得你说的还不是明白,具体点的话就更好说了。。。。

-------------------------------------------------------------------------------------------------------------------

在构造函数里声明的变量在同类中的其他方法是调用不到的,就像stop一样,不能再其他的方法中调用。static的声明作用是:在类加载前就已经加载,早于类的加载,可用类名直接调用,如MainFramegetComText(comp),没有static的声明的话,可先创建对象,再调用即可,如MainFrame f=new MainFrame();fgetComText(comp)。

class MyClass{

public MyClass(){//构造函数

}

private String name;//这是成员变量

public String getMyName(){//这是成员函数

private int age=0;//这是局部变量

return thisname

}

}

public class TestA{

//成员变量,可以用private public protected修饰,也可不写,默认protected,

//一般声明为private,私有化使变量不会轻易被外界使用,容易维护

private int i;

//成员变量可以直接赋值,不赋值的话基本类型默认为0,引用类型默认为null

private String str="abc";

//成员变量使用set和get方法来设值,对外提供使用变量方法

public int getI() {

return i;

}

public void setI(int i) {

thisi = i;

}

public String getStr() {

return str;

}

public void setStr(String str) {

thisstr = str;

}

//构造函数为本类提供实例化方法 不写编译器自动添加无参构造

//允许构造方法重载,即可以有多个不同的构造函数

//如果构造函数声明为private,则在别的类中不能new本类的实例

private TestA(){

}

//一般带参数的构造函数用来初始化成员变量

//如果写了带参数的构造函数,没写无参的,编译器不添加无参构造

//实例化时必须以带参构造函数进行实例化

public TestA(String str){

this(0,str);//本构造方法调用另一个参数为(int String)的构造方法,0可以为任意int值

}

public TestA(int i,String str){

thisi =i;

thisstr=str;

}

//成员方法也有修饰声明 为public为对外所有类提供此方法

//为protected只有子类继承使用

//为private只有在本类能使用

private void selfUse(){

Systemoutprintln(str);//成员方法可以直接使用成员变量

int j=10;//局部变量,别的方法使用不到,使用局部变量之前必须赋值,不会有默认值

setI(j);

}

public void publicUse(){

selfUse();

}

public TestA getTestA(){

return new TestA();

}

}

关系楼上说的也很明白了。

成员方法直接访问成员变量

成员变量可以通过构造函数初始化

构造函数可以直接调用成员方法

Java类的成员变量在被修饰为public、protected和包访问权限时,可以在不同层次上直接给成员变量赋值。但是,赋值的前提是:必须存在持有成员变量的对象。而对象的初始化必须调用构造函数,所以构造函数是必不可缺的。至于使用构造函数还是直接声明时给成员变量赋值,那就要看情况而定。如果创建的这个对象是不可变的,那么就必须使用构造函数初始化成员变量,反之,就无所谓。另外,直接给成员变量赋值,Java是不推荐的,因为这样会破坏它的封装性。所以,建议在构造函数或提供setters方法对变量赋值。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/11670338.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存