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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡生蒙 中级黑马   /  2012-4-22 23:08  /  2194 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


class Student11 {
        private String name;
        private int age;

        Student11(String name, int age) {
                this.name = name;
                this.age = age;

        }

        public String getName() {
                return name;
        }

        public int getAge() {
                return age;
        }

}

public class DouTaiDemo5 {
        public static void main(String[] args) {
                Object obj = new Student11("zhangsan", 30);

                Student11 s = (Student11) obj;
                System.out.println(s.name + "----" + s.age); // 这里访问Studnet类中的name和age时为什么要调用getName和getAge方法,而不能直接用s.name和s.age
        }
}

7 个回复

倒序浏览
当name 和age被 私有后,是不是在主函数中建立对象后,是不能直接访问的,也就是说不能直接给name 和age赋值 。所以提供了public方法来给这两个变量赋值。public的方法是和age,name一个类的,所以该方法可以访问到这两个变量,所以在主函数中调用这个方法对成员变量进行赋值 。
回复 使用道具 举报
name和age被私有化了只能在自己的类中使用
private就是私有化,
想要访问就只能使用public的方法调用
public是公有的,任何类都能使用
回复 使用道具 举报
因为name和age都是类的私有成员,不能在类外直接访问,只能通过类中提供的成员函数访问。
回复 使用道具 举报
本帖最后由 邱俊杰 于 2012-4-23 02:23 编辑

private String name;
private int age;     // private ,私有的意思,变量已被私有化了、外部的方法不可以直接调用的  

所以使用getName内部的方法来调用私有变量、注意私有的变量仅限本类使用。
                               这时候想调用必须定义方法去修饰变量。起到封装效果、
回复 使用道具 举报
朋友,你的问题跟你的标题完全是两码事嘛,你只要搞清楚public、private修饰符的访问范围就可以理解了,private的访问范围仅限于当前类中,一般用来修饰属性,将属性封装在类中,然后提供一个public方法供外界来访问该属性,所以你这个程序中只能用getXXX方法来访问这些被private修饰了的属性
回复 使用道具 举报
私有的类属性是不能被外部显示的调用的,要用到专门的get方法来获取并操作。建议楼主再次看看public、private的修饰规则。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马