黑马程序员_面向对象的三大特征封装、继承、多态

---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------

1,面向对象的概述
概述:
A: 面向对象是相对于面向过程而然的
B: 它是一种代码设计的思想(面向对象思想的特点)
举例说明:
假设自己要买一台电脑,面向过程你就需要自己上网查资料、去电脑城选购电脑、跟卖电脑的进行砍价、然后达成协议,掏钱购买电脑。
面向对象的做法是,你可以找一个人帮你做买电脑这件事,你自己只需要找到这个人就够了,剩下的事情交给他来办就好了,而这个人就是所谓的对象。

2,类与对象的关系
类: 是属性与行为的集合,它是一个抽象的概念,不具体的  (比如:人、动物)
对象:是类的实实在在的具体体现 (比如:张三、猫)

3,成员变量与局部变量的区别
代码位置:
成员变量:类中方法外
局部变量:方法内
内存位置:
成员变量:堆内存中
局部变量:栈内存中
是否有默认值
成员变量:有
局部变量:没有
创建时间与销毁时间
成员变量:随着对象的创建而存在,随着对象的消失而消失(生命周期长)
局部变量:随着方法的调用而存在,随着方法调用完毕而消失
使用范围
成员变量:在整个类中任何位置都能使用
局部变量:只在当前方法中使用

4,封装的概述
概述:隐藏对象的属性与实现细节,对外提供公共访问方式
封装的体现:
class
方法 method
私有 private
private 关键字
作用: 将成员私有化
被私有化的成员 外界不能直接访问, 需要通过公共方法来访问

封装的 属性 (成员变量) 可用来描述同一类事物的特征。 行为 (成员方法) 可描述一类事物可做的操作,封装就是要把属于同一类事物的共性(包括属性与行为)归到一个类中,以方便使用,比如 ,可用下面的方式封装:
人{
    年龄(属性一)
    身高(属性二)
    性别(属性三)


    做事(行为之一)
    走路(行为之二)
    说话(行为之三)
}

5,继承的概述
概念:在一个已有类的基础上,作为修改,得到一个新的类
特点 子类可以直接访问父类中的非私有的属性和行为
java中只支持单继承,不支持多继承
   java中支持多层(重)继承

看如下代码:
class Person
{
public String name;
public int age;
public void eat(){}
public void sleep(){}
}

class Student extends Person
{
public String name;
public int age;
public String height;
public void eat(){}
public void sleep(){}

public void syudy(){}
}

class Teacher extends Person
{
public String name;
public int age;
public String height;
public void eat(){}
public void sleep(){}

public void teach(){}
}

Student类继承了Person类,Student类包括Person类的属性和行为,并自己独立用有height属性和study方法,它比其父类Person更强大。继承实际就是当已有的类不足以满足需要的类的情况时,只需要稍加修改,添加需要而又没有的功能或者方法,得到一个更加强大的类。

6,多态的概述
概念: 一种物质存在多种形态。例如: 水果、 女生、 蔬菜、 动物 、 水。
多态其实是以封装与继承为基础的。

例如:
Person  p = new Student();   //学生对象被提升为人类型
p.eat();
p.study(); //错误,不能使用子类特有方法
Student s = (Student)p; //将人类型强制转换为Student类型
s.study(); //在多态中,自始至终都是子类对象在做着类型的变化

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
详细请查看:www.itheima.com

你可能感兴趣的:(黑马程序员_面向对象的三大特征封装、继承、多态)