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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 静水流华 中级黑马   /  2013-12-24 17:34  /  1002 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//运用一下今天学习的java类的私有privte
//定义一个名字为person的类,具有的属性是年龄
/*class person
{
private int age;//用private的将age进行封装
public void setAge(int a)//提供对外的接口
{
  if (a > 0 && a < 130)
  {
    age = a;
    speak();
  }
  else
   System.out.println("illegatily");
  
}
private void speak()
{
  System.out.println("age="+age);
}
}
*/
//调用person类
class persondemo
{
public static void main(String[] args)
{
  person p = new person();
  p.setAge(-40);
  System.out.println("------------------------------------");
  //bycicle b =new bycicle();
  //setBycicle(2,"red");
  
}
}
//练习:描述一个自行车bicycle的类;
class bycicle
{
private int num;
private String color;
public void setBycicle(int num,String color)
{
  num = num;
  color = color;
  miaoSu();
  
}
private void miaoSu()
{
  System.out.println("bycicle.color="+color+"bycicle.num="+num);
}
}
不知怎么结果打印的结果总为illegatily

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

倒序浏览
看一下这是错拿了吧
  1. class person
  2. {
  3.         private int age;//用private的将age进行封装
  4.         public void setAge(int a)//提供对外的接口
  5.         {
  6.                 if (a > 0 && a < 130)
  7.                 {
  8.                          age = a;
  9.                          speak();
  10.                 }
  11.                 else
  12.                         System.out.println("illegatily");
  13.                
  14.         }
  15.         private void speak()
  16.         {
  17.                 System.out.println("age="+age);
  18.         }
  19. }

  20. //调用person类
  21. class persondemo
  22. {
  23.         public static void main(String[] args)
  24.         {
  25.                 person p = new person();
  26.                 p.setAge(-40);
  27.                 System.out.println("------------------------------------");
  28.                 bycicle b =new bycicle();
  29.                 setBycicle(2,"red");
  30.                
  31.         }

  32. }
  33. //练习:描述一个自行车bicycle的类;
  34. class bycicle
  35. {
  36.         private int num;
  37.         private String color;
  38.         public void setBycicle(int i,String j)
  39.         {
  40.                 num = i;
  41.                 color = j;
  42.                 miaoSu();
  43.                
  44.         }
  45.         private void miaoSu()
  46.         {
  47.                 System.out.println("bycicle.color="+color+"bycicle.num="+num);
  48.         }
  49. }
复制代码
回复 使用道具 举报
  1. class person
  2. {
  3.         private int age;//用private的将age进行封装
  4.         public void setAge(int a)//提供对外的接口
  5.         {
  6.                 if (a > 0 && a < 130)
  7.                 {
  8.                          age = a;
  9.                          speak();
  10.                 }
  11.                 else
  12.                         System.out.println("illegatily");
  13.                
  14.         }
  15.         private void speak()
  16.         {
  17.                 System.out.println("age="+age);
  18.         }
  19. }

  20. //调用person类
  21. class persondemo
  22. {
  23.         public static void main(String[] args)
  24.         {
  25.                 person p = new person();
  26.                 p.setAge(-40);
  27.                 System.out.println("------------------------------------");
  28.                 bycicle b =new bycicle();
  29.                 b.setBycicle(2,"red");//在setBycicle前面加个b.就OK了。
  30.                
  31.         }

  32. }
  33. //练习:描述一个自行车bicycle的类;
  34. class bycicle
  35. {
  36.         private int num;
  37.         private String color;
  38.         public void setBycicle(int i,String j)
  39.         {
  40.                 num = i;
  41.                 color = j;
  42.                 miaoSu();
  43.                
  44.         }
  45.         private void miaoSu()
  46.         {
  47.                 System.out.println("bycicle.color="+color+"bycicle.num="+num);
  48.         }
  49. }
复制代码


上面注释了来了,还有你书写类名要注意首字母要大写,虽然这不影响编译,但还是得注意格式。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
伍艳雄 发表于 2013-12-24 18:19
上面注释了来了,还有你书写类名要注意首字母要大写,虽然这不影响编译,但还是得注意格式。 ...

很感谢,我会注意的
回复 使用道具 举报
public class PersonDemo {
        public static void main(String[] args)
        {
          Person p = new Person();
          p.setAge(40);
          System.out.println("------------------------------------");
          Bycicle b =new Bycicle();
          b.setBycicle(2,"red");
        }
}


public class Bycicle {
        private int num;
        private String color;
        public void setBycicle(int num,String color)
        {
          this.num = num;
          this.color = color;
          miaoSu();
          
        }
        private void miaoSu()
        {
          System.out.println("bycicle.color="+color+"bycicle.num="+num);
        }
}

上面第一个地方和第一个同学给你回答的一样。我主要想说明的是第二地方,你看这两句话了吧
this.num = num;
this.color = color;
如果你不这样赋值,你打印出的是没有color和num的。这个this的意思就是调用这个类里面的,而不是其他地方的。你可以试试,而且我觉得,你可以写个构造函数初始化,不用这么麻烦,呵呵。个人意见,不要太介意。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马