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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fans0414 中级黑马   /  2016-3-24 01:39  /  3056 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
class Demo2_Phone {

        public static void main(String[] args){
                Phone p = new Phone();
                p.setBrand("三星");
                p.setPrice(5288) ;
                System.out.print(p.getBrand()+"..."+p.getPrice());
        }
}
class Phone {
        private String brand;//属性
        private int price;
                                       
        public String setBrand(String brand){
                this.brand = brand;
        }
        public String getBrand(){
                return this.brand;
        }
        public int setPrice(int price){
                this.price = price;
       
        }
        public int getPrice(int price){
                return this.price;
       
        }
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                        //行为
        public void call(){
                System.out.println("打电话");
        }
        public void sendMessage(){
                System.out.println("发信息");
        }
        public void playGame(){
                System.out.println("玩游戏");
        }
}
按自己思路打出来的 但是报错了
Demo2_Phone2.java:7: 错误: 无法将类 Phone中的方法 getPrice应用到给定类型;
                System.out.print(p.getBrand()+"..."+p.getPrice());
                                                                             ^
  需要: int
  找到: 没有参数
  原因: 实际参数列表和形式参数列表长度不同
1 个错误

10 个回复

倒序浏览
本帖最后由 youthy.J 于 2016-3-24 02:16 编辑
  1. public String setBrand(String brand){
  2.                 this.brand = brand;
  3. } // setBrand方法不应该返回String类型,应该返回void

  4. public int setPrice(int price){
  5.         this.price = price;
  6. }// setPrice方法不应该返回int类型,应该返回void

  7. public int getPrice(int price){
  8.         return this.price;
  9. }//getPrice方法不应该接收int类型的参数,应该为空
复制代码

点评

Set方法没有返回值. 所以设置成员属性时候都应该是void  发表于 2016-3-25 13:31
回复 使用道具 举报
278008379 来自手机 中级黑马 2016-3-24 12:06:15
藤椅
设置价格的返回值错了,好好想想
回复 使用道具 举报
278008379 来自手机 中级黑马 2016-3-24 12:07:23
板凳
设置属性的返回值,好好看看
回复 使用道具 举报
当然会报错啦,你看看你getPrice方法的参数列表,不需要加int price的,你getBrand()都没加,为啥getPrice加了,手误吧估计!以后看到实际参数列表和形式参数列表不同,第一时间核对下方法的参数列表有没有问题.
回复 使用道具 举报
返回值类型出错,应该是void类型
回复 使用道具 举报
public String setBrand// 应该是public void setBrand
public int setPrice//public void setPrice
               
回复 使用道具 举报
你把getPrice(int price)这里设置的需要一个参数,但是你的主函数里调用的时候没有传参数过来啊
回复 使用道具 举报
setXxx()返回值是void;getXxx()l没有形式参数。。。。
回复 使用道具 举报
调用成员方法时,一定保证参数类型,顺序的一致性
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马