javaoo重要一点的知识总结

面向对象:

1.对象:万物皆对象,对象因关注而产生。

2. 类:是对象的抽象。

3. 属性:是对象身上的值数据。
4. 行为:是对象的功能。
 
特点:
1:将复杂的事情简单化。
2:面向对象将以前的过程中的执行者,变成了指挥者。
3:面向对象这种思想是符合现在人们思考习惯的一种思想。
 
访问修饰符:
修饰符有4个:  private ,默认 , protcter , public。
可选修饰符现在学了4个:static,abstract,final,default
 
方法的重载:
定义:是在一个类中,多个方法的方法名相同,但是参数列表不同。参数列表:
指的是参数个数,参数类型,参数顺序的不同。
注意:1.重载必须通过不同的参数列表不同来进行重载。
2.不能通过访问权限,返回类型,抛出异常来进行重载。
3.可以有不同的访问修饰符。
 
方法的重写:
定义:在继承中,子类继承父类的方法。但是子类需要和父类不同的实现,扩展或者
覆盖父类的方法实现则需要对方法进行重新书写。这种则是方法的重写。重写是发生
在继承类中的。
注意:1.子类的参数列表,方法名必须和父类的参数列表方法名完全一致。
2.返回类型必须一致。
3.方法修饰符必须大于或者等于父类的方法修饰符。
4.子类重写不能抛出比父类被重写方法更多的异常。
 
封 装(面向对象特征之一):是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离;便于使用;提高重用性;安全性。
封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。
this:代表对象,就是所在函数所属对象的引用。
 
继承:
定义:是类与类之间的关系,把具有相同的属性和行为进行抽取,设计为父类。子
类通过继承,就可以自动具备父类的属性和行为。
关键字:extend
优点:1.增加代码的重用性。
2.扩展性也增加了。
3.设计程序变得简单。
注意:1.java是单继承。(类层次更清晰,但是缺少了丰富度)
2.Object类是所有类,包括数组的超类。
3.继承的实现是通过内存叠加的方式实现的。(先造父类对象部分,再造子类
对象部分)
4.子类需要重新实现父类中的方法行为时,需要用到方法的重写。
 
多态:
定义:相同的行为,不同的实现。             --------针对的是方法多态。
分类:静态多态,和动态多态。
类型转换:
1.向上转:把子类的对象赋给父类的变量。  (一定成功)
2.向下转:把父类的值(引用值)赋值给子类的变量。(不一定成功)
向下转:需要用到关键字   instanceof
用于判断前面的变量,是否指向后面的类型。
多态的自我理解:
即是在方法中,需要输入一个对象。但是对象具体是谁,并不知道。就需要用到
用父类定义一个 作为形参传入方法中。 如果需要具体判断是哪一个对象,就需
要用到instanceof,来调用这个对象特有的方法。如果是父类中的方法,可以直
接用父类定义的形参对象来调用需要调用的方法。
this   与   super
this:
本类中的所有属性和方法,可以看到继承与父类的的访问修饰符允许
看到的
2.this()代表调用同一个类的其他构造器。
注意:this()只能放在构造器的第一句。
uper:
1.super()调用父类的指定构造,也只能放在构造器的第一句,和this()
不能同时出现。
2.super()有默认,不会写也有(调用父类无参),this()没有默认。
3.super.****** 当前对象的父类对象,访问不到本类定义的任何属性和方法
也可以看到继承父类的属性和方法,也受访问修饰符限制,和this相同。
综上:super可以看到的,this也可以看到。
this看到的 ,super就不一定看的到,所以this比较好。
 
抽象类:
有抽象方法的类一定是抽象类。(在类的声明部分加上abstract)
特点:
1.不能产生对象。(原因:对象是个具体的,实际存在的,不应该有不确定的。)
2.抽象类存在的意义在于产生子类。
3.抽象类里面也有属性方法等等一个类该有的都有。
4.语法上:抽象类可以没有抽象方法,但是这样就失去设计的意义。
5.抽象类可以继承于抽象类。
6.抽象类中可以重载构造方法。
注意:子类继承抽象类,必须实现抽象类中的所有抽象方法,除非这个类也是抽象类。
abstract只针对类和方法。
用法:一般用在父类中,所有子类共有的,都要重写的,就一般写为抽象方法,自然父
类就是抽象类了。
在代码中:  @overriding 可以进行标注提醒。
 
接口:
特点:1.是一种独立的数据类型。
2.接口关注的是行为的共享(接口不能产生对象)
1> 定义
1.关键字:interface
2.接口在语法上访问修饰符只有public和default(默认)
属性:只能是公共,静态,常量属性(三个都得满足)
就算不写public statc final,默认也算常量。
构造:接口无构造方法。
方法:接口里面定义的方法只能是公共的,抽象的方法。
ublic abstract 可以省略不写。
没有实例初始化块,也没有静态初始化块。
公共借口的名字必须和他所在的Java文件名保持一致。
注意:在jdk1.8中,接口有了新的功能,也就是能写方法实现部分。用default修饰。
 
java分了5片内存。
1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。
栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );
只要数据运算完成所在的区域结束,该数据就会被释放。
堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。
1:每一个实体都有内存首地址值。
2:堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。
3:垃圾回收机制。
 
成员变量和局部变量的区别:
1:成员变量直接定义在类中。
局部变量定义在方法中,参数上,语句中。
2:成员变量在这个类中有效。
局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。
3:成员变量存在于堆内存中,随着对象的产生而存在,消失而消失。
局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。
 
构造函数:用于给对象进行初始化,是给与之对应的对象进行初始化,它具有针对性,函数中的一种。
特点:
1:该函数的名称和所在类的名称相同。
2:不需要定义返回值类型。
3:该函数没有具体的返回值。
 
构造函数和一般函数有什么区别呢?
1:两个函数定义格式不同。
2:构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次。
一般函数,是对象创建后,需要调用才执行,可以被调用多次。

转载于:https://www.cnblogs.com/luoqingang/p/8469176.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值