面向对象和面向过程的总结 :都是解决问题的思维方式,都是代码组织的方式。 解决简单问题可以使用面向过程 解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程。
面向对象思考方式:
遇到复杂问题,先从问题中找名词,然后确立这些名词哪些可以作为类,再根据问 题需求确定的类的属性和方法,确定类之间的关系。
1、类中预备好了空间可以存储数据,创建对象之后,真的有空间了,能存储数据了
2、每一个对象都有自己独立的空间,存储自己的属性,和别的对象没关系
3、对象所用的方法都是同一块代码,所以大家是共用的
要创建对象,一定会走构造器。利用构造器的这个特点,我们可以通过构造器给对象赋初始值。
Java通过new关键字来调用构造器
在每一个类中都存在至少一个特殊的方法,构造方法
1、形式
方法名和类名一致 && 没有返回值
2、作用|调用时机
构造方法会在new的时候(创建对象的时候)自动被系统调用
3、每一个类都有构造器
如果没有手动给,系统会在编译的时候自动给一个空构造
如果手动给了,系统将不再给
基本含义:当前对象
普通方法中,this总是指向调用该方法的对象。
构造方法中,this总是指向正要初始化的对象。
this最常的用法:
让类中的一个方法,访问该类的另一个方法(this.方法名())或属性(this.属性 名)。访问属性更常用,用来区分同名的形参和属性。
使用this关键字调用重载构造方法。避免写相同的初始化代码,只能在构造方法 中用,并且必须位于构造方法的第一句。
super 是直接父类对象的引用。可以通过 super 来访问父类中被子类覆盖的方法 或属性。
访问构造器的特点:
第一行,构造器中,不能形成闭合的环。在没有显示通过super调用父类构造器 时,一定会在子类构造器的入口默认调用一个无参构造 suepr()
, 如果父类中没有 提供无参构造,子类必须手动调用父类的带参构造 suepr(实参列表)
;
任何类的构造函数中,若是构造函数的第一行代码没有显式的调用 super(…);那么Java默认都会调用super();作为父类的初始化函数
static属性: 属性被所有对象共享; 这个属性先于对象存在的
static 方法:这个方法先于对象存在
用static声明的成员变量为静态成员变量.
用static声明的方法为静态方法
修饰变量 :被他修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。
修饰成员变量 :成员变量必须要赋值
修饰局部变量 :
常量要进行初始化,如果采用系统默认值的话,就失去了存在的意义。
因此必须显式初始化,可以直接赋值或初始化块中或构造函数中。
但只能赋值一次!
final修饰的是引用变量时只是引用值不能改变。对应的对象内部的属性仍然可变。
修饰方法: 该方法不可被子类重写。但是可以被重载
如果一个类中所有的方法都不能满足子类的需求,但是子类都必须有,这个类就被完全抽象了,完全抽象类,接口,接口只是提供标准,不提供任何的实现
接口可以多实现
需要让用户知道的暴露出来,不需要让用户了解的全部隐藏起来。这就是封装。
JavaBean
对象JavaBean
就是一个简单的java
类,用来存储基本的信息,一般和数据库的表对应
规范:
1、提供公开的构造器(至少存在一个无参的,带参的)
2、属性私有化
3、为私有化的属性提供对应set/get方法(设定器/访问器),方法应该是公开的, 名字按规范来
使用extends
关键字进行实现继承
子类继承父类,可以得到父类的全部属性和方法 (除了父类的构造方法)。
java
中只有单继承
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fIyKWnHw-1604930473284)(面向对象(三).assets/1.png)]
一种事物的多种形态
普通语句块 : 普通代码块就是我们平常所说的方法中的方法体
构造块 : 构造代码块是由来个大括号包裹起来的代码块,其语法结构如下:
{
...
...
}
静态块 :静态代码块是由static{}包裹起来的代码片段,其语法结构如法:
staic{
…………
…………
}
同步块: 同步代码块是由synchronized(){}包裹起来的代码块,其语法结构如下:
synchronized(){
…………
…………
}
区别:
对修改关闭,对扩展开放。在软件的生命周期内,因为变化,升级和维护等原因需 要对软件原有代码进行修改,可能会给旧代码引入错误,也有可能会使我们不得不 对整个功能进行重构,并且需要原有代码经过重新测试。解决方案:当软件需要变 化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实 现。不过这要求,我们要对需求的变更有前瞻性和预见性。其实只要遵循前面5中 设计模式,设计出来的软件就是符合开闭原则的。
java8
新特性:
Lambda : 简化匿名内部类
函数式接口: 4大
方法引用: 简化Lambda
时间日期API
体的行为来实现变化,而不是通过修改已有的代码来实 现。不过这要求,我们要对需求的变更有前瞻性和预见性。其实只要遵循前面5中 设计模式,设计出来的软件就是符合开闭原则的。
java8
新特性:
Lambda : 简化匿名内部类
函数式接口: 4大
方法引用: 简化Lambda
时间日期API
Stream/
本文发布于:2024-02-01 17:13:30,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170677881138200.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |