永发信息网

初学java 关于成员变量的问题

答案:4  悬赏:40  手机版
解决时间 2021-04-14 03:31
  • 提问者网友:愿为果
  • 2021-04-13 14:39

最近才学到成员变量和方法,有很大问题。。。

1 成员变量可以设置和取出,不明白两者的意义和区别,什么时候该设置什么时候是取出?

2 成员变量取出就是成员方法吗?(因为我看两者都可以用return)

3 void我只知道在成员方法中返回值为空时用,设置和读取成员方法时也要用?但那是什么情况时用呢?

这几个概念完全混乱。。。希望有前辈可以解疑!!

如果不方便表达,可以借用这段代码说话,这个是设置名字和读取年龄

private String Name;

private byte Age;

public void setAge(bute age)

{ sName=name; }

public byte getAge

{ return Age; }

我知道问题比较多也很浅薄。。。但是真的很焦虑,希望可以有人指点一下~!!!

最佳答案
  • 五星知识达人网友:污到你湿
  • 2021-04-13 16:11

虽然大家说了那么多,但是我头都看晕了,不知道你晕了没~


这样的类,表现的是JAVA 的 封装


class Man{


private String name;


private int age;


public void setName(String name){ //这里是成员变量的一个 getter 和 setter


this.name=name;


}


public String getName(){


return this.name;


}



public void SayHello(){


System.out.println(this.getName()+"说:Hello!“ ); //this就是自身类对象,就是man


} // this.getName() 就获得了这个人的姓名


}



这是我们定义的一个人 有 名字 和 年龄,但是具体的一个人是怎么样的呢?


我们就先 实例一个man : Man man=new Man();


现在我们就有一个人了,怎么样给这个人起名字呢?怎么样设置它的年龄呢?属性已经封装在了man但中,我们这是就要用成员方法来操作成员变量了,比如我起名: man.setName("张三"); 有名字了,这个人我们还教他了一个sayHello的动作,怎么样让他动呢? man.SayHello();


运行结果就是 张三 说:hello!


是不是明白了呢?这就是成员方法和成员变量,变量描述的就是对象的属性,而方法,描述的是对象的动作

全部回答
  • 1楼网友:想偏头吻你
  • 2021-04-13 18:22

private String Name;//声明私有变量 为String类型

private byte Age;//生命byte类型的年龄

public void setAge(bute age)//写一个共有且无返回值类型的方法,不是你所说的为null 而是这个方法不需 要有返回值 接收一个bute??(byte类型吧?)的变量

{ sName=name; }//这里写的就不是很清楚了sName是哪里来的?name又是什么?按照你的写题思路该是

{Age=age}//给age赋值

public byte getAge//这个就是把age里面的值读取出来!

{ return Age; }

  • 2楼网友:底特律间谍
  • 2021-04-13 17:32

你的代码是不是错了啊

private String Name;

private byte Age;

public void setAge(bute age)

{ sName=name; }

public byte getAge

{ return Age; }

应该是设置年龄和读取年龄

private String Name;

private byte Age;

public void setAge(byte age)

{ Age=age; }

public byte getAge

{ return Age; }

如果是设置名字和读取年龄也应该是

private String Name;

private byte Age;

public void setName(String name)

{ Name=name; }

public byte getAge

{ return Age; }

成员变量可以设置和取出要这样写也是为了更好的封装效果,其实要什么时候设置就是在你要为那个成员方法赋值的时候,什么时候取出就是在你要调用那个成员方法的值的时候,取出和设置都是对成员变量进行操作,这个其实很容易理解的

  • 3楼网友:不如潦草
  • 2021-04-13 16:45

public class Person{

private String name; //注意变量的命名尽量第一个字母小写。以后你会知道为什么

private int age;

//此方法设置Person的age属性,因为age的访问修饰符是private(私有属性)

//所以只能利用自身的方法进行访问,此方法不需返回值,所以使用void修饰

public void setAge(int age)

{ this.age=age; }

//此方法是取得age的值,如:Person p=new Person() int i=p.getAge()

// 变量i将获得age的值,如age的修饰时public 则可以这样:int i=p.age

//因为p.getAge() 方法返回了一个值所以 int i=p.getAge();成立

// 这里 return 是用来给调用的对象返回一个值。

public int getAge()

{ return age; }

public void setName(String name){ //同上

this.name=name;

}

public String getName(){ //同上

return name;

}

}

//假如我们还有另一个类Student 有name和age属性,我们需要设置他们的值。

public class Student{

public String name;

public int age;

public static void main(String[]args){

Person person = new Person(); //创建Person的对象

person.setAge(20); //设置person的age为20

person.setName("张三");//设置person的name是张三

Student student = new Student();

//设置student的name值,因为Student的name变量是public修饰所以student.name是正确的。

//这一句是取得Person的name值并赋值给Student的name

student.name=person.getName();

student.age=person.getAge(); //这一句同上

System.out.println(student.name);

System.out.println(student.age);

}

}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯