黑马程序员技术交流社区

标题: 面向对象(感觉读一遍就会啦) [打印本页]

作者: 鲁枝权双元    时间: 2015-7-11 21:07
标题: 面向对象(感觉读一遍就会啦)
        面向对象二:
1.封装:就是指隐藏对象的属性和实现细节,仅对外提供公共访问方式(写set和get方法提供给外界,提高访问数据的安全性)
       
        private :是一个关键字用于修饰成员变量和成员方法(还可以修饰内部类),被私有化的成员只在本类中使用,不能被其他类直接访问。

        private仅仅是封装的一种体现,类也是一种体现。
        JavaBean---简单的描述类

2.构造方法:
        格式及其特点:方法名和类名一致
                没有返回值类型
                没有具体的返回值
        作用:给对象进行初始化
        注意事项:
                如果你没有给出构造方法系统给出一个默认的无参数构造方法
                如果你给了一个构造方法,系统将不再提供的默认无参构造
                        建议永远给出一个无参的构造方法
                构造方法的重载
        给成员变量赋值方法:
                set方法
                构造方法

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

4.代码块:
        由{}括起来的代码
        分类:
                定义在方法中的代码块叫局部代码块,作用就是让变量早点从内存中消失,即控制变量的生命周期
       
                定义在方法外的代码块,叫构造代码块,作用把所有构造方法中公共的部分提取出来放在构造代码块中,减少代码的重复率
                        执行特点:每次创建对象都执行,而且是优先于构造方法

5.对象的初始化过程:
        成员变量默认初始化----显示值替代默认值---构造代码块---构造方法执行
        附代码解释:
class Person
{
        private String name="haha";
        private int age=10;
        //代码块
        {
                System.out.println(name+"--"+age);//haha 10
                name="hehe";
                age=20;
                System.out.println(name+"--"+age);//hehe 20
        }
        public Person(){
        //无参数构造
        }
        public Person(String name,int age){
        //带参数的构造
                System.out.println(this.name+"--"+this.age);//hehe 20带this就是调用成员变量
                System.out.println(name+"--"+age);//heihei 30   没有带this就是局部变量
                this.name=name;
                this.age=age;
                System.out.println(name+"--"+age);//heihei 30   赋值后成员变量发生改变
        }
        public void setName(String name){
                this.name=name;
        }
        public String getName(){
                return name;
        }
        public void setAge(int age){
                this.age=age;
        }
        public int getAge(){
                return age;
        }

}
class PersonTest
{
        public static void main(String[] arge){
                Person p=new Person("heihei",30);
                System.out.println(p.getName()+"--"+p.getAge());//heihei 30
        }
}
       
6.static关键字
        static可以修饰成员变量成员方法;
        被类的所有对象共享;
        随着类的加载而加载;
        优先于对象存在;
        可以直接被类容调用  格式:类名.方法();
        总结:某个内容被所有对象共享,那么,该内容就应该用静态修饰,没有被静态修饰的内容,其实是属于对象特殊属性.


        类的组成:
                成员变量:属性  类变量:被static修饰的成员变量
                                实例变量:没有被static修饰的成员变量
                构造方法:初始化
                成员方法:功能或者行为

        注意事项:在静态方法中是没有this关键字的因为静态是随着类的加载而加载,而this是对象创建才存在
                静态方法只能访问静态成员变量和静态成员方法,(非静态方法可以调用静态方法也可以调用非静态方法)。
                静态的内容可以通过对象调用也可以使用类名调用,推荐使用类名调用

7.如何制作说明书:
                /**
                *@author luzhiquan
        头文件        *@version V1.0
                *
                */
       
                /**                                                                                                                                               
        方法        *@param int[]
                *@return int
                */

        帮助文档的生成:DOS 命令下的代码:javadoc -d doc(存放的路径) -author -version ArrayTools.java

        生成CHM文档也可以。

8.API文档的注意事项:
        如果是继承java.lang的就不需要导包
        先查找构造方法:有构造方法就通过构造方法创建对象使用
                        没有构造方法就说明这个类的成员一般是静态通过类名调用
        查看时候:左边:是否静态
                          是否有明确返回值
                  右边:看方法名
                          看参数的类型
       
        字段------成员变量-------属性   格式:静态就是类名.变量;非静态就是创建对象调用

9.学习查看math类:
        random的用法(猜数字游戏):
                double d=Math.random();
                int number=(int)(d*100)+1;1—100之间

                合起来写:(int)(Math.random()*100)+1;

        注意事项:用while循环猜,break跳出。















作者: lsunshine    时间: 2015-7-11 21:22
好吧  表示我又复习一下
作者: 白面馅包子    时间: 2015-7-11 21:25
看一遍 楼主的帖子 在预习一下  听说面向对象很难啊
作者: 鲁枝权双元    时间: 2015-7-11 21:26
lsunshine 发表于 2015-7-11 21:22
好吧  表示我又复习一下

那送我黑马币吧,要考黑马可惜分不够
作者: lsunshine    时间: 2015-7-11 21:29
鲁枝权双元 发表于 2015-7-11 21:26
那送我黑马币吧,要考黑马可惜分不够

我还在努力中..................................
作者: 鲁枝权双元    时间: 2015-7-11 21:30
lsunshine 发表于 2015-7-11 21:29
我还在努力中..................................

好吧,感觉你好像够了
作者: 童杭杰    时间: 2015-7-11 21:45
听说面向对象很难啊
作者: 何时归来看花开    时间: 2015-7-11 21:48
做的笔记还不错,继续加油
作者: 帅帅loyal    时间: 2015-7-11 22:14
总结的挺全啊
作者: 进军黑马    时间: 2015-7-11 22:27
复习了,  总结的很好奥
作者: 官沛    时间: 2015-7-11 22:30
笔记挺全的,就是今天上课学的。
复习一遍~
作者: zhand    时间: 2015-7-11 23:01
复习一下 感觉不错
作者: 鲁枝权双元    时间: 2015-7-12 09:42
读一遍感觉自己对面向对象的思想又更进一步啊
作者: 陈建民1    时间: 2015-7-12 10:20
听说面向对象好难的。。。
作者: wuchangfeng    时间: 2015-7-12 10:32
还在学,提前认真看看




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