Java精选笔记_面向对象(慨念、类和对象)

面向对象概念

在程序中使用对象来映射现实中的事物使用对象的关系来描述事物之间的联系,这种思想就是面向对象。

相对于面向过程而言。是一种思想,强调的是功能的对象
面向对象的本质:以类的方式组织代码,以对象的方式组织数据。如请人修车,我只面向修车的人,不面对修车的过程。只看中修好车的结果。

面向对象的三大特征

封装性

是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想

继承性

主要描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展

多态性

在一个类中定义的属性和方法被其它类继承后,它们可以具有不同的数据类型或表现出不同的行为

类与对象

定义

对象:是具体的事物,我们叫做object,instance实例,以后我们说某个类的对象,某个类的实例,是一样的意思
:是对象的抽象,我们叫做class,它用于描述一组对象的共同特征和行为,是对现实生活中事物的描述。

例子:交通工具(Vehicle)---->汽车(Car)、火车(Train)、飞机(Plane)、轮船(Ship)

类中可以定义成员变量和成员方法,其中成员变量用于描述对象的特征,也被称作属性成员方法用于描述对象的行为,可简称为方法

关系

类和对象的关系:特殊到一般,具体到抽象。
类可以看成一类对象的模板,对象可以看成该类的一个具体实例
类是用于描述同一类型的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动态属性。
对象是JAVA程序的核心,在JAVA程序中“万物皆对象”。
JDK中提供了很多类供编程人员使用,编程人员也可定义自己的类。
定义类 :
class 类名(首字母大写) {
   //属性
   private 数据类型 属性名; //建议增加相应的getter、setter方法
   //方法 行为
   //构造方法
}
例 :
    Car c=new Car();
    c.color;
在堆内存中产生一个实体 ,通过new操作符来完成。

对象的初始化过程

Person p=new Person("张",20);
1.new person类之后,加载person.class文件加载到内存中
2.执行该类中的static代码块,对Person.class进行初始化
3.在堆内存中开辟空间,分配内存地址
4.在堆内存中建立对象的特有属性,并对其默认初始化
5.对特定属性进行显示初始化
6.对对象进行构造代码块初始化
7.对对象进行对应的构造函数初始化
8.将内存地址付给栈内存中的对象p变量。

对象的创建与使用

概念

对象都属于某个类,对象都是唯一的,对象都有属性和行为,一切皆为对象
当对象被实例化后,在程序中可以通过对象的引用变量来访问该对象的成员当没有任何变量引用这个对象时,它将成为垃圾对象,不能再被使用

消息

调用对象的方法就是给对象发送了一个消息
一个对象能够接受某种消息,就意味着该对象向外界提供了某种服务


获取Class对象

类名.class 对象.getClass()
Class.forName("类的完全限定名")

匿名对象

匿名对象是对象的简化形式
new 实例名称(); 
使用方式一:当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化,如果对一个对象进行多个成员调用,必须给这个对象起个名字。
使用方式二:可以将匿名对象作为参数使用。

类的设计

类是抽象的。
定义类的时候需要进行数据抽象和行为抽象。

类与类之间的关系

IS-A:继承
        泛化
        实现
HAS-A:关联
        关联
        聚合
        合成
USE-A:依赖

定义类

[访问修饰符] [修饰符] class 类名 [extends 父类] [implements 接口1, 接口2, ...] {}
属性:数据抽象
方法:行为抽象
构造器
        创建对象:new 构造器()

类的封装

隐藏一切可隐藏的实现细节只暴露最简单的编程接口
在定义一个类时,将类中的属性私有化,即使用private关键字来修饰私有属性只能在它所在类中被访问,为了能让外界访问私有属性,需要提供一些使用public修饰的公有方法,其中包括用于获取属性值的getXxx方法设置属性值的setXxx方法
最能让人感到快乐的事,莫过于经过一番努力后,所有东西正慢慢变成你想要的样子!
原文地址:https://www.cnblogs.com/justdoitba/p/7582151.html