面向对象总结(上)

来源:互联网 发布:安卓一键改串号软件 编辑:程序博客网 时间:2024/04/30 02:08



一.面向对象的概述:

         面向对象对于初学java的同学来说,是比较难理解的。下面我将面向对象做一个较全面的总结,同时对自己前一段时间面向对象的学习做一个回顾,复习。

 

1、  定义:

面向对象是相对于面向过程而言的一种编程思想,是基于面向过程的(也就是说没有面向过程就没有面向对象,面向过程是面向对象的基础)。面向对象更接近于人们日常生活中的思维习惯, 将功能封装进对象,强调具备了功能的对象,不关注具体实现过程,而面向过程则更侧重于实现的过程。

2、  思想特点:

1)      面向对象更符合人们思考习惯的思想;

2)      将复杂的事情简单化

3)      把执行者变成了指挥者

3、  面向对象举例(与面向过程对比):

1)吃烤鸭

(1)面向过程:

           买一对小鸭子

           养鸭子

           养大之后大鸭子下小鸭子,当满足鸭子可以自然繁殖时

           宰鸭子(大鸭子):杀鸭子,开水拔毛,开膛破肚,整理鸭杂

           上网学习如果做烤鸭

           买作料,食材,工具

           开始做鸭子

           。。。

           在做好鸭子后,饱含泪水,终于吃上了烤鸭

 

(2)面向对象:

调用全聚德的为我提供烤鸭的方法,大吃一顿,给全聚德传递一个参数(money!)

           注意:

                    全聚德用什么鸭子?不知道  属性

                             全聚德怎么做鸭子?不知道  方法

2)将大象放进冰箱:

(1)面向过程的思想:

           打开冰箱

           把大象放进去

           关上冰箱

 

           //又来了一只骆驼,骆驼也想进冰箱

           我需要修改所有的代码:

           打开冰箱

           把骆驼放进去

           关上冰箱

 

2)面向对象:

           冰箱.打开()

           大象.进去()//骆驼.进去()

           冰箱.关闭()

 

           class 冰箱:

                    public void打开的方法(){

                    }                          

                    public void关闭的方法(){

                    }

           class 大象:a

                    public void进去(){

                    }

           class 骆驼:

                    public void进去(){

                    }

           //又来了一只骆驼,骆驼也想进冰箱

                    只需要修改部分代码

二、类与对象

         任何编程语言都是用于描述现实世界事物的,现实世界的事物都有自己的特征和行为。

1、  类:是java语言的最基本的单位。类的属性就对应于现实世界事物的特征,类的成员方法(成员函数)对应于事物的行为。所以所类是一组相关的属性和行为的抽象。

2、  对象:是该类事物的具体体现(实例)。

3、  总结:

1)      Object(物体,对象)

         将现实事物抽象成类

         将人这种现实事物抽象成Person类

 

2)      类的注意事项:

(1)    类中属性叫做成员变量

(2)    类中功能叫做成员函数(成员方法)

(3)    成员函数与成员方法均叫做类的成员

(4)    成员变量是直接定义在类中的,与成员函数是平等的关系

(5)    访问对象的属性:对象名.属性名   叫做:该对象的XX属性

(6)    调用对象的方法:对象名.方法或者对象名.方法名()

4、  举例:

人类和具体的对象人的实例:

class MyObj{public static void main(String[] args) {Person p = new Person();//new了一个人类的实例对象pp.name = "zhangsan";p.age = 23;p.sex = "男";p.eat();//p的实例对象调用人类的eat方法p.sleep();p.hitBeanBean();System.out.println(p.name);System.out.println(p.age);System.out.println(p.sex);System.out.println(p.isLoveCode);method();}public static void method(){System.out.println("这个方法被调用了!");}}//定义人类class Person{String name;int age;String sex;boolean isLoveCode = true;//是否热爱编程public void eat(){int a = 10;System.out.println("我吃了!");}public void sleep(){System.out.println("我睡了!");}public void hitBeanBean(){System.out.println("我爽了!");}}

三、类的组成

         类由成员变量(即就是类的属性)、构造方法和成员方法组成。

1、  成员变量:

1)      成员变量定义在类中,方法外。针对类中的任何方法都有效。

2)      注意事项:在方法中使用变量的时候,先找局部范围,再找成员范围。

2、  构造方法:

1)      用于创建对象,对数据进行初始化。

2)      特征:

(1)    方法名和类名相同。

(2)    没有返回值类型(注意:返回值为null时,是属于有返回值)。

(3)    没有返回值。

3)      注意事项:

(1)    如果没有写构造方法,系统给出一个无参默认构造方法。

(2)    如果写了构造方法,系统将不再提供构造方法。

3、  成员方法:

1)      成员方法完成一些特定的功能。

2)      方法的重载:

(1)    方法名相同,参数列表不同(参数的个数,类型、顺序的不同)。

(2)    与返回值类型无关。

四、封装

1、封装是将一些对象的实现细节和相关的属性隐藏起来,外界无法访问该对象的属性也不知道其实现的细节,仅对外提供公共的访问方式。

2、常见的封装有:对类、方法、private修饰成员变量的封装;

3、封装的好处:

1) 将变化隔离:将系统中经常变化的部分和稳定的部分隔离,有助于增加复用性,并降低系统耦合度。

2) 便于使用:封装了很多常用的方法,当需要的时候直接调用,方便了开发人员的使用,提高了开发效率。

3) 提高了重用性

4) 提高了安全性

4、 封装的弊端:让数据访问变的复杂。

5、封装的原则:

1) 将不需要对外提供的内容都隐藏起来。

2) 把属性都隐藏,提供公共方法对其访问。

         6、代码体现:

           类中的所有成员变量私有,给出对应的get/set方法。

class Student{private String name;private int age;public Student(){}public Student(String name,int age){this.name = name;this.age = age;}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;}



0 0
原创粉丝点击