黑马程序员技术交流社区

标题: 封装、构造函数学习笔记 [打印本页]

作者: LPStone    时间: 2015-5-6 21:09
标题: 封装、构造函数学习笔记
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

        private:关键字 表示私有,可修饰成员变量和方法
                 被他修饰的成员只能在本类中访问,在其他类中是不能直接被访问的

成员变量的封装:
        好处:可以保护数据,加入数据校验,提高访问安全性
        private int age;
        //给成员变量赋值
        public void setAge(int age)
        {
                if(age > 0 && age < 200)
                        this.age = age;
                else
                        System.out.println("您输入的年龄不合法!");
        }
        //提供成员变量访问方法
        public int getAge()
        {
                return age;
        }

构造方法:
               
        格式及特点:
                A:方法名必须和类名一致
                B:没有返回值类型
                C:没有具体的返回值,有一个默认隐藏的return;
        作用:给对象进行初始化
        注意事项:
                A:如果没有定义构造方法,那么系统会默认给出一个无参的构造方法,该构造方法不执行任何操作
                B:假如定义了构造方法,系统将不再提供默认构造方法
                  (推荐:请永远手动给出无参构造方法)
                C:构造方法重载,接收不同的参数

给成员变量赋值:
        A:通过set方法进行赋值
        B:通过构造方法进行赋值

this关键字:
        代表其所在方法所属对象的引用。
        哪个对象调用方法,在方法内部就有一个隐含的this代表这个对象
        谁调用,就代表谁。
应用场景:
        用于解决局部变量隐藏成员变量值的问题。
        调用构造方法。


代码块:就是有{}括起来的代码
分类:
        定义在方法中的代码块:局部代码块
                作用:让变量尽早的从内存中消失,提高效率

        定义在方法外的代码块:构造代码块
                作用:把所有构造方法中的共同的操作定义在构造代码块中,提高代码复用性,在构造方法前执行。

面试题:Person p = new Person("林青霞",26);的执行过程?



static关键字:可以修饰成员变量、成员方法。被该类的所有对象共享。节省内存空间。
        特点:
                A:随着类的加载而加载
                B:优先于对象存在
                C:被所有对象共享
                D:可以被类名直接调用
注意事项:
        A:在静态方法中是没有this关键字的
           因为静态是随着类的加载而加载的,而this是对象创建才存在的
        B:静态方法只能访问静态成员变量和静态成员方法。
        C:静态的内容可以通过对象调用,也可以通过类名调用,但是一般推荐通过类名调用。

如果在一个类A中,使用另外的一个类B的内容。(两个类在同一个文件夹下)
        方式1:先编译B类,再编译A类
        方式2:


文档注释:/** .....*/
/**
*这是一个文档注释实例
*@author LPStone
*@version 1.0
*@param int a 形参
*@return int
*/

类的访问权限必须是public

如何使用JDK提供的API(应用程序编程接口--帮助文档)。
        A:找到文档,打开文档
        B:点击左上角的显示变成隐藏,然后点击索引
        C:在输入框里输入要找的内容然后回车,再回车
        D:看这个类的结构
        E:看看类的说明
        F:看看类的成员变量、构造方法和成员方法
                名称:字段————成员变量————属性
                a:有构造方法,那么就通过构造方法创建对象
                b:没有构造方法 那么这个类的成员一般是静态的,通过类名调用
        G:按照正常的操作使用方法。
                左边:
                  是否静态:如果静态修饰,那么可以通过类名调用。否则,就必须创建对象调用。
                  是否有明确返回值:如果是void类型,就直接调用即可。否则,就可以输出或者赋值。
                右边:
                  看方法名:不要写错了。
                  看参数:看参数类型及个数。



java.long内置包,其下的类可以直接使用,例如Math类。否则,就需要导包。
例如:java.util.Scanner










作者: 王英明    时间: 2015-5-6 21:17
恩,顶一下
作者: LPStone    时间: 2015-5-6 21:21
多谢捧场啦!
作者: 爱如kongcheng    时间: 2015-5-6 22:19
很好很全面!
作者: richaled    时间: 2015-5-7 08:13
很好,支持一下
作者: 苟苟    时间: 2015-5-7 09:25
这么详细,不觉明历
作者: 紫影    时间: 2015-5-7 09:27
不错哦,总结的不错
作者: csu050416    时间: 2015-5-7 09:38
赞一个!
作者: LPStone    时间: 2015-5-7 21:01
csu050416 发表于 2015-5-7 09:38
赞一个!

多谢捧场!
作者: Sheng.cn    时间: 2015-5-7 21:29
给成员变量赋值有三种方法,还有java.lang,不是long.




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