黑马程序员技术交流社区

标题: 自学到面向对象关于成员方法求解惑 [打印本页]

作者: yangjs    时间: 2017-3-6 23:02
标题: 自学到面向对象关于成员方法求解惑
                看视频和书上对成员变量的理解都在一再强调成员方法是该类的行为(功能),但是明显下面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("玩游戏");
        }
}



作者: xiaoxipeng    时间: 2017-3-6 23:19
自学很艰难吧

作者: yangjs    时间: 2017-3-6 23:22
xiaoxipeng 发表于 2017-3-6 23:19
自学很艰难吧

肯定比上基础班难些,主要是没老师给你讲解。
作者: 281496929    时间: 2017-3-6 23:25
你的String brand  int price 是私有的,所以需要set  get 为他提供方法 便于外部访问,打电话,发短信的功能也是成员方法,不同的是set get是为私有的成员变量服务的

作者: 281496929    时间: 2017-3-6 23:26
我也是新手,回答的不好,

作者: yangjs    时间: 2017-3-6 23:28
281496929 发表于 2017-3-6 23:25
你的String brand  int price 是私有的,所以需要set  get 为他提供方法 便于外部访问,打电话,发短信的功 ...

所以成员变量并不完全是我看到的类的行为功能这些东西吗。
作者: 281496929    时间: 2017-3-6 23:28
既然有构造函数了就没有那个空参的构造函数了吧

作者: yangjs    时间: 2017-3-6 23:32
281496929 发表于 2017-3-6 23:28
既然有构造函数了就没有那个空参的构造函数了吧

练习上要求做一个构造方法的重载.....但是这不是重点啊兄弟...
作者: yangjs    时间: 2017-3-6 23:33
281496929 发表于 2017-3-6 23:26
我也是新手,回答的不好,

没事没事~谢谢。
作者: 281496929    时间: 2017-3-6 23:53
成员变量和成员方法不一样啊

作者: ZP515630    时间: 2017-3-6 23:57
刚学到面向对象
作者: lvshen9    时间: 2017-3-7 06:26
加油,共勉

作者: xiaoxipeng    时间: 2017-3-7 23:09
yangjs 发表于 2017-3-6 23:22
肯定比上基础班难些,主要是没老师给你讲解。

那确实,学校里面还是氛围好一点
作者: ApePlanet    时间: 2017-3-8 08:28
首先成员变量私有化封装安全性的要求,不能让外部调用的时候随意的,超出一定允许范围的更改你的成员变量的值或者名称,而你所用的set get 方法只是为了在其他类调用该类的时候能够在外部通过调用set方法来将你设置的成员属性进行重新的赋值或者更改,用get方法来得到私有的成员变量,这两个都属于是成员方法,但是他们的用途就是仅仅对成员变量的更改和调取!没有其他功能,而你所用的其他的成员方法,会在你以后的更深入的学习过程中,用到的,这些方法可以是各种求最值等,只不过是你现在还没有学习到,你的迷茫就在于你不知道这以后怎么用,我也是这么过来的,但是现在我们学的时候就是用知道能这么用,别到时候用上了,忘了就行;
作者: yangjs    时间: 2017-3-8 12:02
ApePlanet 发表于 2017-3-8 08:28
首先成员变量私有化封装安全性的要求,不能让外部调用的时候随意的,超出一定允许范围的更改你的成员变量的值 ...

哦~,谢谢大神这么用心的回答,虽然似懂非懂,但是这个问题的疑问算是解决了。非常感谢。

作者: newu    时间: 2017-3-8 13:51
好帖子顶一顶!感谢楼主





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2