A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

                看视频和书上对成员变量的理解都在一再强调成员方法是该类的行为(功能),但是明显下面setBrand、getBrand、setPrice、getPrice四种方法并不是这个Phone类的行为或者功能。关于下面代码中的setBrand、getBrand、setPrice、getPrice究竟是成员方法吗?如果是它们又和下面的call,sendMessage,playGame成员方法有什么区别呢?如果不是那它们在这个类中又该算什么呢?

                 想了一晚上还是很困惑,我都在想我是不是一开始被什么行为功能之类的误导了,谢谢各位大佬帮我解惑答疑。


[Java] 纯文本查看 复制代码
public class Phone {
	private String brand;
	private int price;

	public Phone() {
	}

	public Phone(String brand, int price) {
		this.brand = brand;
		this.price = price;
	}

	public void setBrand(String brand) {
		this.brand = brand;
	}

	public String getBrand() {
		return brand;
	}

	public void setPrice(int price) {
		this.price = price;
	}

	public int getPrice() {
		return price;
	}

	public void call() {
		System.out.println("打电话");
	}

	public void sendMessage() {
		System.out.println("发短信");
	}

	public void playGame() {
		System.out.println("玩游戏");
	}
}


15 个回复

正序浏览
newu 黑马帝 2017-3-8 13:51:10
16#
好帖子顶一顶!感谢楼主
回复 使用道具 举报
ApePlanet 发表于 2017-3-8 08:28
首先成员变量私有化封装安全性的要求,不能让外部调用的时候随意的,超出一定允许范围的更改你的成员变量的值 ...

哦~,谢谢大神这么用心的回答,虽然似懂非懂,但是这个问题的疑问算是解决了。非常感谢。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
首先成员变量私有化封装安全性的要求,不能让外部调用的时候随意的,超出一定允许范围的更改你的成员变量的值或者名称,而你所用的set get 方法只是为了在其他类调用该类的时候能够在外部通过调用set方法来将你设置的成员属性进行重新的赋值或者更改,用get方法来得到私有的成员变量,这两个都属于是成员方法,但是他们的用途就是仅仅对成员变量的更改和调取!没有其他功能,而你所用的其他的成员方法,会在你以后的更深入的学习过程中,用到的,这些方法可以是各种求最值等,只不过是你现在还没有学习到,你的迷茫就在于你不知道这以后怎么用,我也是这么过来的,但是现在我们学的时候就是用知道能这么用,别到时候用上了,忘了就行;
回复 使用道具 举报
yangjs 发表于 2017-3-6 23:22
肯定比上基础班难些,主要是没老师给你讲解。

那确实,学校里面还是氛围好一点
回复 使用道具 举报
回复 使用道具 举报
刚学到面向对象
回复 使用道具 举报
成员变量和成员方法不一样啊
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
281496929 发表于 2017-3-6 23:26
我也是新手,回答的不好,

没事没事~谢谢。
回复 使用道具 举报
281496929 发表于 2017-3-6 23:28
既然有构造函数了就没有那个空参的构造函数了吧

练习上要求做一个构造方法的重载.....但是这不是重点啊兄弟...
回复 使用道具 举报
既然有构造函数了就没有那个空参的构造函数了吧
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
281496929 发表于 2017-3-6 23:25
你的String brand  int price 是私有的,所以需要set  get 为他提供方法 便于外部访问,打电话,发短信的功 ...

所以成员变量并不完全是我看到的类的行为功能这些东西吗。
回复 使用道具 举报
我也是新手,回答的不好,
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
你的String brand  int price 是私有的,所以需要set  get 为他提供方法 便于外部访问,打电话,发短信的功能也是成员方法,不同的是set get是为私有的成员变量服务的
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报

肯定比上基础班难些,主要是没老师给你讲解。
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马