黑马程序员-关于面向对象的个人总结

来源:互联网 发布:厦门楼市每日成交数据 编辑:程序博客网 时间:2024/04/29 15:32

------- android培训java培训、期待与您交流! ----------

1:面向对象

         面向过程:关注实现问题的步骤。

         面向对象:关注实现问题的结果。    

 

         不管是面向过程还是面向对象都是解决问题的一种思想。

         思想特点:

                   A:面向对象是一种符合人们习惯的思想

                   B:把复杂的问题简单化

                   C:让我们从执行者变成指挥者

 

                   面向过程:

                   注重的解决问题的过程,强调是解决问题的每一个过程完成的功能(就是用函数解决问题)

 

                   面向对象:

                   首先:哪些具体的事物有什么的功能

                   然后:指挥具有功能的事物做事情

                   具体的需求解决:

 

                            首先:在整个需求中,有哪些具体的事物。

                            然后:确定事物的具体功能

  什么是对象

                  

 

         举例:

                   A:去旅游

                   B:买电脑

                   C:洗衣做饭

                   D:扇风

 

         问题:把大象装进冰箱分几步。

                   A:打开冰箱门

                   B:把大象放进去

                   C:关闭冰箱门

 

         代码体现:

                   面向过程:

class Test{public static void main(String[] args){//System.out.println("打开冰箱门");//System.out.println("把大象放进去");//System.out.println("关闭冰箱门");open();in();close();}public static void open(){System.out.println("打开冰箱门");}public static void in(){System.out.println("把大象放进去");}public static void close(){System.out.println("关闭冰箱门");}}

面向对象:

                            按照给出的三个步骤思考,基本上就符合面向对象思想:

                            A:分析给出的问题领域有哪些类

                            B:分析每个类有哪些成员

                            C:分析类于类之间的关系

 

                            分析:

                            A:把大象装进冰箱分几步。

                                     大象,冰箱,测试类 (名词提取法 -- UML 统一建模语言)

                            B:大象

                                     进冰箱

                               冰箱

                                     开门

                                     关门

                               测试类

                                     main方法

                            C:在测试类里面,创建大象类对象和冰箱类对象,并调用其功能

class elephant{public static void in(){System.out.println("把大象放进去");}}class 冰箱{public static void open(){System.out.println("打开冰箱门");}public static void close(){System.out.println("关闭冰箱门");}}class Test{public static void main(String[] args){大象 d = new 大象();冰箱 b = new 冰箱();b.open();d.in();b.close();}}

ava语言是面向对象的,它是用来模拟现实世界中的事物。

  而java语言的最基本的单位是类,所以,事物 -- 类

 

  事物:

         外在特征 -- 属性

         具备的行为 -- 功能

 

  把事物通过类描述

 

  类:

         事物属性 -- 成员变量

 

         事物功能 -- 成员方法

 

  手机:

         属性:颜色,大小,品牌

         功能:打电话,发短信

 

  类:

         成员变量

         成员方法

         构造方法

class Phone{String color;double size;String type;public void call(String name){System.out.println("给"+name+"打电话");}public void sendMessage(){System.out.println("群发短信");}}

如何使用一个类的成员呢?

                   A:创建类的实例

                   B:通过实例.成员访问

 

                   Phonep = new Phone();

 

                   p.call("小明");

                   p.sendMessage();

 

   类:类是现实世界事务的抽象

   对象:是现实世界事务的具体存在的个体

        

 

3:封装

         隐藏实现细节,提供公共的访问方式。

 

         在java代码中是如何做到一点的呢?用private修饰成员(成员变量和成员方法)

 

 

         作用域:

                   变量的作用域在{}内有效。

 

         this关键字:

                   代表当前类的引用。

 

                   使用场景:

                            A:解决具备变量隐藏成员变量

                            B:在方法内部,this可以代表一个对象,谁调用代表谁


class Person

         {

                   privateString name;

                   privateint age;

 

                   publicPerson(){}

 

                   //可以省略

                   publicPerson(String name,int age)

                   {

                            this.name= name;

                            this.age= age;

                   }

 

                   publicvoid setName(String name)

                   {

                            this.name= name;

                   }

 

                   publicString getName()

                   {

                            returnname; //this.name;

                   }

 

                   publicvoid setAge(int age)

                   {

                            this.age= age;

                   }

 

                   publicint getAge()

                   {

                            returnage;

                   }

         }

 

         给成员变量赋值的方式:

                   A:通过构造方法(带参构造写与不写都可,但是,无参必须手动给出)

                   B:通过set方法(推荐)

 

------- android培训java培训、期待与您交流! ----------


原创粉丝点击