黑马程序员技术交流社区

标题: 自己的笔记_面向对象的第一天的课程_封装 [打印本页]

作者: xiaobokk    时间: 2016-7-30 23:35
标题: 自己的笔记_面向对象的第一天的课程_封装
一.面向对象的引入
   1.面向过程 -->  按照顺序一步接着一步的往下执行,强调的是执行的过程.
   2.面向对象 --> 强调的是对象.让对象完成某一件事      面向对象的开发就是:不断的创建对象让对象去做事情
      面向对象的特征:封装(encapsulation),
                              继承(inheritance),
                             多态(polymorphism)


  3.从自然事物的引入对比面向对象的成员:
    自然事物: ①属性 : 一个自然事物的描述信息
                   ②行为 : 该自然事物的自然行为

   类:  ①成员变量 :  描述事物的属性  ---  属性
         ②成员方法 :  描述事物的行为  ---  方法

4.  声明成员变量与成员方法
     成员变量: 和以前的声明一样,位置在类中,方法外;
     局部变量:在类中方法内,位置在类中方法内,或者方法的声明上.
     成员方法:和以前的定义一样,只不过去掉了static关键字

5.成员变量和局部变量的区别
       ①位置不同:
                         成员变量:在类中方法外
                         局部变量:在类中方法内,或者方法声明上
       ②生命周期不同
                         成员变量:随着对象的创建而创建,随着对象的消失而消失,
                         局部变量:随着方法的调用而存在,随着弹栈而消失
       ③内存位置不同
                         成员变量:因为属于对象,所以在堆内存中
                         局部变量:因为在方法中,所以在栈内存中
       ④初始化值不同
                         成员变量:有默认的初始化值
                         局部变量:没有默认的初始化值,在使用之前要进行初始化

6.匿名对象类 : 就是没有名字的对象 ,没有引用去记录他的地址值
     什么使用去使用匿名对象 : 如果调用一次类中的方法的话,使用匿名对象类会比较好,因为可以及时回收内存,而要多次调用方法的话,那么就不太适用了.
                                             匿名对象还可以作为参数传递,比较方便
    创建对象的格式: 类名  对象名  = new 类名();
    创建匿名对象类的格式:   new 类名();

7.封装 : 指隐藏对象的属性和实现细节,仅仅提供公共的方法去访问
     好处:①提高安全性; ②提高代码的复用性; ③隐藏实现细节,提供公共的方法

8.this关键字的使用
    记住一句话:谁调用了方法,那么this就代表了哪一个对象的地址引用

9.private关键字 : 只运行本类中的方法进行访问

最后完成一个手机类
[Java] 纯文本查看 复制代码
class Test_Phone {
        public static void main(String[] args) {
                Phone p = new Phone();
                p.setBrand("华为");
                p.setPrice(1999);
                p.show();
                p.call();
                p.sendMessage();
        }
}

class Phone {
        private String brand;        //定义私有的品牌成员变量
        private int price;                //定义私有的价格成员变量

        public void setBrand(String brand){        //设置品牌
                this.brand = brand;
        }

        public String getBrand(){                        //获取品牌
                return brand;
        }

        public void setPrice(int price){        //设置价格
                this.price = price;
        }

        public int getPrice(){                                //获取价格
                return price;
        }
       
        public void show(){                                        //展示品牌与价格
                System.out.println(brand+"..."+price);
        }

        public void call(){                                        //手机打电话的功能
                System.out.println(brand+"打电话");
        }
       
        public void sendMessage(){                        //手机发短信的功能
                System.out.println(brand+"发短信");
        }

}













作者: shockzwel1    时间: 2016-7-30 23:40
感谢分享。
作者: walkk    时间: 2016-7-30 23:41
可以可以思路清晰




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