代码改变世界

面向对象

2019-09-29 18:00  老九君  阅读(161)  评论(0编辑  收藏  举报

面向对象

1.面向对象语言的特点:

抽象,封装,继承,多态

抽象:提取出一系列事务具有的普遍特征和动作。比如一个车子类,它们具有的共同特征是:品牌,耗油量,排放量......,具有的共同行为是:启动,刹车,减速......

封装:将这一系列特征和行为用一个类将它们概括起来。

 

2.关于类图:

变量名:类型

方法名:类型

黄色是变量,绿色是方法

+号是公有的,-号是私有的

 

3.关于面向对象:

1.面向对象可重用,可维护

2.类和对象内方法不用加static

3.类和对象都放在堆内存,但是类不是实体化,所以没有内存空间,而对象实例化了,所以占内存空间

4.关于抽象:

●自底向上的抽象(新手常用)

●自顶向下进行分解抽象

 

4.this关键字:

this.意思为这个类的

在Java中this可以完成三件事情:表示本类属性,表示本类方法,当前对象。

 

 

在类中定义方法,并且需要返回值时,如果没有从外界传来与这个类中定义的变量重名的形参时,可以直接返回变量名,否则要在前面加上this.,代表是这个类的变量

 

5.构造方法:

1.没有fan返回值类型

2名称与类名一致

3.可以指定参数及实现重载

4.注意隐式构造和参数化构造不能共存

●隐式构造在实例化对象的时候会默认执行,即使不写出来

●一旦声明参数化构造构造后,隐式构造就会消失,如果二者都想用,这时隐式构造就要写出来了

构造方法链:

写一个完全的方法,用一些不完全的方法调用比自己完全的方法

  

this可以代表这个类名,构造方法只能调用一次

 

 

 

 

 问:为什么random()的括号内加Integer.MAX_VALUE不会报错,而加Long.MAX_VALUE会报错

 

 

 答: 因为nextLong()方法没有重载,只有无参版本的方法 

 

老九学堂会员社群出品