2019-11-13

今日学习总结

一、面向对象【java语言的核心机制,最重要的内容,java语言的特色】

1、面向过程和面向对象的区别、

    — 面向过程;主要关注点是:实现的具体过程,因果关系【集成显卡的开发思路】

            *优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低

            *缺点:采用面向过程的方式开发很难解决非常复杂的业务逻辑,另外面向过程的方式

导致软件元素只见那的“耦合度”非常高,只要其中一环出问题,整个系统受到影响,

导致最终的软件“扩展力差,另外,由于没有独立的概念,所以无法达到组件服用,

— 面向对象;主要关注点是:主要关注对象【独立体】能完成哪些功能。【独立显卡的开发思路】

*优点:耦合度低 ,扩展力强。更容易解决现实世界当中更复杂的业务逻辑。组件复用

  性强

*缺点:前期投入成本较高,需要进行独立体的抽取,大量的系统分析与设计。

— c语言是纯面向过程的、c++半面向对象、java纯面向对象

— 现在出现的一些新的编程语言多数都是面向对象的,人在认识现实世界的时候是以面向对象的方式

— 面向对象更符合人的思维方式。

2、面向对象的三大特征。

— 封装

— 继承

— 多态

所有面向对象的编程语言都有这三大特征

3、采用面向对象的方式开发一个软件,生命周期当中:【整个生命周期中贯穿使用oo面向对象方式】

— 面向对象的分析:OOA

— 面向对象的设计:OOD

— 面向对象的编程:OOP

4、类的对象的概念

— 什么是类?

* 类在现实世界当中是不存在的,是一个模板,是一个概念,是人类大脑思考抽象的结果。

* 类代表了一类事物。

* 在现实世界当中,对象A与对象B直接具有共同特征,进行抽象总结出一个模板被称为类。

— 类和对象的概念

* 对象是实际存在的个体,现实世界当中现实存在

— 描述一下整个软件开发的过程;

* 程序员先观察现实世界,从现实世界当中寻找对象

* 寻找了N多个对象之后,发现所有的对象都有共同特征

* 程序员在大脑中形成了一个模板【类】

* java程序员可以通过java代码来表述一个类

* j ava程序中有了类的定义

* 然后通过类就可以创建对象

* 有了对象之后,可以让对象直接协作起来形成一个系统。

— 类—【实例化】--->>对象

— 对象又被称为实例/instance

— 对象---【抽象】--->类

— 重点:

* 类描述的是对象的共同特征。

* 共同特征例如:身高特征

* 这个身高特征在访问的时候,必须先创建对象,通过对象去访问这个特征。

  因为这个特征具体的某个对象上之后,值不同。有的对象1.60,有的对象2.60.

5、一个类主要描述什么信息呢?

— 一个类主要描述的是 状态+动作

— 状态信息:名字、身高、性别、年龄

— 动作信息:吃、唱歌、跳舞、学习

— 状态--->一个类的属性

— 动作--->一个类的方法

— 类(

属性://描述对象的状态信息

方法://描述对象的动作信息

)

— 注意:状态和动作当具体到某个对象上之后,发现最终的结果可能不一样。

— 对象和对象之间有共同的特征,但是具体到对象之后又数据的差异。

6、类的定义

— 语法结构;

【修饰符列表】class 类名{

}

— 学生类,描述所有学生对象的共同特征:

学生对象有哪些状态信息;

*学号(int)

*姓名(String)

*性别(boolean)

*年龄(int)【是一个属性,是一个属性,是数据就应该有数据类型】

*住址(String)

。。。。

学生对象有哪些动作信息;

*吃饭

*睡觉

*学习

*玩

*唱歌

*跳舞

。。。。

7、重点:属性通常是采用一个变量的形式来完成定义的。

int on;

int age;

String name;

String address;

Boolean sex;

8、java语言中包括两种数据类型

— 基本数据类型

byte

short

int

long

float

double

boolean

char

-

— 引用数据类型

String    SUN提供的

System    SUN提供的

。。。。。

二、封装

1、封装之后,对于一个事物来说,看不到这个事物复杂的一面,只能看到该事物简单的一面

— 对外提供简单的操作入口。电视剧就是很好的例子,人们只需要会使用遥控器就行。

— 封装之后才会形成真正的“对象”,真正的“独立体”

— 封装就意味着以后的程序可以重复使用。并且这个事物应该适应性比较强,在任何场合都可以使用

— 封装之后,对于事物本身,提高了安全性。 

2、封装步骤

— 所有属性私有化,使用private关键字进行修饰,private表示私有的,修饰的所有数据只能在本类中访问。

— 对外提供简单的操作入口,也就是说以后外部程序想要访问所属属性,必须通过入口进行访问。

— 对外提供两个公开的方式,分别是set修改和get读取方式进行访问。

— setter and getter方法没有static 关键字

— 有static关键字修饰的调用方法为:类名.方法名(实参)

— 没有static关键字修饰的调用方法为:引用.方法名(实参)

三、

1、构造方法语句:

【修饰符列表】构造方法名(形式参数列表){

方法体;

}

2、构造方法的方法名必须和类名一致

3、构造方法的作用是什么?

— 创建对象

— 给成员变量赋值【初始化成员变量】


4、构造方法应该如何调用?

— new 构造方法名(实参);在堆内存中开辟空开存储对象


5、如果一个类没有提供任何构造方法,系统默认提供无参数构造方法。

如果一个类已经收到的提供了构造方法,那么系统不会再提供任何构造方法。


6、成员变量到底什么时候赋值?

— 构造方法的时候系统会默认赋值

— 构造方法的时候也可以手动赋值。


7、 构造方法主要用来创建类的实例化对象。可以完成创建实例化对象的初始化工作。,声明格式。

构造方法修饰词列表 类名(方法参数列表);


8、构造方法修饰词列表:public 、proteced、private

9、 类的构造方法和普通方法一样可以进行重载

10、构造方法具有的特点:

— 构造方法名称必须类名一致

— 构造方法不具有任何返回值类型,即没有返回值。关键字void 也不能加入

加入后就不是构造方法了。就成为普通的方法,

— 任何类都有构造方法,如果没有显示的定义,则系统会给该类定义一个默认的构造器,

这个构造器不含任何参数,如果显示的定义了构造器,系统就不会创建默认的不含参数的构造器了。

  四、static关键字:

1、static修饰的变量叫做静态变量。

2、static修饰的方法叫做静态方法。

3、static还可以定义静态语句块。


4、static定义的静态语句块在类加载阶段执行,并且只执行一次,并且自上而下的顺序执行。

5、static修饰的方法叫做静态方法

— 一般情况下工具类中的方法大部分都是静态方法。

— 静态方法不用创建对象也能直接访问该方法。

6、成员方法

    — 成员方法必须使用引用. 调用

7、静态方法

    — 可以使用类名.  方式调用。也可以使用引用. ,即使用的是引用. ,底层还是用的是类名.

            — 静态方法中不能直接访问非静态数据。

            — 静态方法中不能使用this

8、static修饰的变量叫做静态变量


9、变量分类:

— 局部变量

— 成员变量(实例变量,非静态变量)

— 静态变量(方法区)


10、什么时候变量声明成静态变量?

— 如果这个属性所有的对象都有,并且这个属性的值是相同的,则该属性声明成静态的属性

11、成员变量和静态变量是从什么时候开始赋值的?

      — 成员变量:创建Java对象的时候初始化。

— 静态变量:在类加载阶段赋值,并且只赋值一次。

五、this关键字:

1、this是什么?

— this是一个引用类型。

— 在堆中每一个java对象上都有this,

— this保存内存地址指向自身。


2、this能用作哪些地方?

— this可以用在成员方法中

— this可以用在构造方法中

语法:this(实参);

通过一个构造方法去调用另一个构造方法

目的:代码重用。

this(实参):必须出现在构造方法的第一行。

3、this不能用在静态方法中。 

— 静态方法的执行根本不需要java对象的存在。直接使用类名. 的方式访问。

而this代表的是当前对象。所以静态方法中根本没有this。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。