黑马程序员技术交流社区

标题: 求教 关于多态的小问题 [打印本页]

作者: 胡生蒙    时间: 2012-4-22 23:08
标题: 求教 关于多态的小问题

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
        }
}

作者: 刘_浩    时间: 2012-4-22 23:15
当name 和age被 私有后,是不是在主函数中建立对象后,是不能直接访问的,也就是说不能直接给name 和age赋值 。所以提供了public方法来给这两个变量赋值。public的方法是和age,name一个类的,所以该方法可以访问到这两个变量,所以在主函数中调用这个方法对成员变量进行赋值 。
作者: chenwei    时间: 2012-4-22 23:22
name和age被私有化了只能在自己的类中使用
private就是私有化,
想要访问就只能使用public的方法调用
public是公有的,任何类都能使用
作者: 乞文超    时间: 2012-4-23 00:01
因为name和age都是类的私有成员,不能在类外直接访问,只能通过类中提供的成员函数访问。
作者: 邱俊杰    时间: 2012-4-23 00:38
本帖最后由 邱俊杰 于 2012-4-23 02:23 编辑

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

所以使用getName内部的方法来调用私有变量、注意私有的变量仅限本类使用。
                               这时候想调用必须定义方法去修饰变量。起到封装效果、

作者: 蒋亮    时间: 2012-4-23 00:41
朋友,你的问题跟你的标题完全是两码事嘛,你只要搞清楚public、private修饰符的访问范围就可以理解了,private的访问范围仅限于当前类中,一般用来修饰属性,将属性封装在类中,然后提供一个public方法供外界来访问该属性,所以你这个程序中只能用getXXX方法来访问这些被private修饰了的属性
作者: prospect    时间: 2012-4-23 00:49
私有的类属性是不能被外部显示的调用的,要用到专门的get方法来获取并操作。建议楼主再次看看public、private的修饰规则。




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