黑马程序员技术交流社区

标题: 新手求教,很简单但是不理解 [打印本页]

作者: 沈子豪    时间: 2013-3-3 12:20
标题: 新手求教,很简单但是不理解
本帖最后由 沈子豪 于 2013-3-4 23:27 编辑

class Person
{
        private String name;
        private char sex;
        private int age;
        public void setName(String n)
        {
         name=n;
        }
        public void setSex(char s)
        {
         sex=s;
        }
        public void setAge(int a)
        {
            if(a>=5&&a<=100)
                {
                 age=a;
                }
                else
                {
                System.out.println("年龄错误");
                }
        }
   public int getAge()
        {
    return age;
    }
        public char getSex()
        {
        return sex;        
        }
        public String getName()
        {
        return name;
        }
        private void speak()
        {
        System.out.println("我的名字是"+name+" 我的性别是"+sex+" 我的年龄是"+age);
        }
}
class jieshao
{
public static void main(String[] args)
        {
     Person p=new Person();
     p.setName("xxx");
     p.setSex('男');
         p.setAge(24);
     p.speak();
    }
}

各位我把speak函数私有化了,那我如果想测试上面那个函数该怎么办?我的主函数不能调用了..可能有点钻牛角尖
作者: 赵华帅    时间: 2013-3-3 12:48
本帖最后由 赵华帅 于 2013-3-3 15:13 编辑

可以另外提供一个接口供外部访问或调用,例如:

class Person
{
        private String name;
        private char sex;
        private int age;
        public void setName(String n)
        {
         name=n;
        }
        public void setSex(char s)
        {
         sex=s;
        }
        public void setAge(int a)
        {
            if(a>=5&&a<=100)
                {
                 age=a;
                }
                else
                {
                System.out.println("年龄错误");
                }
        }
   public int getAge()
        {
    return age;
    }
        public char getSex()
        {
        return sex;        
        }
        public String getName()
        {
        return name;
        }
        private void speak()
        {
        System.out.println("我的名字是"+name+" 我的性别是"+sex+" 我的年龄是"+age);
        }
       public void nowSpeak()
        {   
                         System.out.println("我要开始说话了:");
                         speak();
                         System.out.println("我说完了。");
        }
}
public class jieshao
{
public static void main(String[] args)
        {
     Person p=new Person();
     p.setName("xxx");
     p.setSex('男');
     p.setAge(18);
    p.nowSpeak();
    }
}


作者: 江华    时间: 2013-3-3 13:04
                   lou shang   + 1   
作者: 克零岚    时间: 2013-3-3 13:17
多此一举   哥们儿看来你的基础。。。嘿嘿
作者: 移动小坦克    时间: 2013-3-3 22:05
可以提供一个public 权限的函数,此函数内部掉用private函数即可

public void mySpeak()
{
    speak();
}
跟如getAge()是一样的原理
还有专牛角尖,是成为牛人的必备素质。想想乔老大那个轴劲。。。。




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