黑马程序员技术交流社区

标题: private和public简单概述 [打印本页]

作者: hacker◊紫猫    时间: 2014-10-2 23:23
标题: private和public简单概述
基础班学习了一个月多了,感觉了对感念理解的重要性,对于初学者来说对概念的理解非常重要, 前面的概念理解不透彻,就会导致后面的东西理解困难,形成滚雪球的情况,不会的越来越多,所以我来谈谈对private,public,this ,static的理解希望对初学者有帮助。
       对概念的理解,我们不能只止步于就知道这段代码没有错,止步于自己能推出一段程序的的运行结果 这些是远远不够的,我们要做的的程度我理解应该为这段代码为什么这么写,有什么好处,还有其他的  写法吗?而且每个关键字的最实用他的环境是什么。言归正传我来说说这几个关键字的理解
          private和public我们可以理解为一对反义词,他俩不能同时出现在同一个语句中。private意为私有的public  意为公共的,根据字面意思我们可以简单的理解为被private修饰的变量或方法被私有化了,被public修饰的变量或方法被公有化了。先说private的定义。private:是一个关键字,表示私有的意义。可用于修饰成员变量和成员方法。
被它修饰完毕后的内容,在其他类中是不能直接访问的。例如
程序1:
  class Student
                {
                        private String name;
                        private int age;
                        public void setName(String n)
                        {
                                this.name = n;
                        }
                        public String getName()
                        {
                                return name;
                        }               
                }
class Demo
{
        public static void main(String []args)
        {
                Student S=new Studeng();
                S.setName("崔建儒");                     //必须通过调用函数才能对其进行访问。
        }
}
程序2:
class Student
                {
                         String name;
                         int age;                       
                        }
                        public String getName()
                        {
                                return name;
                        }               
                }
class Demo
{
        public static void main(String []args)
        {
                Student S=new Studeng();
                S.name="崔建儒";            //可以直接调用
                S.age=24;                              //可以直接调用
        }
}


           程序1的name1和age1被private修饰了,所以他们是私有的不能被外界所调用,只能通过函数public提供访问函数,在主函数中建立student的对象在调用setname函数才能实现对name1和age1的调用,实现了对私有化变量的保护。不能让外部累随意对其进行调用。而且成员变量只能在方法中进行判断
所以使用private又方便又安全。
            程序2的name2和age2和程序1的setname被public修饰,能直接通过对象进行访问级Student S=new Studeng();s.name2,s.age2能随意对其进行赋值很不安全,
           还有一般在非主函数所在类中,一般成员变量都要被private修饰,而且对外提供访问方法。一般不会用程序2那种写法。
                还有一个private和public的的知识点就是构造函数一定要有private或public修饰,除了默认的构造函数。

作者: zz_job    时间: 2014-10-2 23:50
总结的很好啊!!!    大神你很努力嘛




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