无名 发表于 2022-5-8 16:11:50

【FX】Java面向对象入门笔记(一)


http://cdn.u1.huluxia.com/g4/M02/9D/1D/rBAAdmCrxcSAcBe4AAKA6rfdhHk053.jpg
一、为什么使用面向对象
前言:
面向对象的三大特征
封装 (Encapsulation)
继承 (Inheritance)
多态 (Polymorphism)
编程思想:
面向过程:做某件事情都需要自己亲历亲为,按照步骤去完成
面向对象:做某件事情不需要自己亲历亲为,只需指定特定的对象去完成即可

1.现实世界就是由对象组成的,如下图,万物皆对象(不是单指女朋友也不是单指男朋友哈~)
2.面向对象设计和开发程序的好处
1.交流更加流畅
2.提高设计和开发效率
3.面向对象的思想符合人类思维习惯

二、对象和封装
1.类和对象的概念
1,类是对某一事物的描述,是抽象的,概念上的定义。
2,对象是实际存在的该事物的个体,是具体的、现实的。

2.成员变量和局部变量的区别
成员变量:定义在类中,有初始值
局部变量:定义在方法中,无初始值

3.方法的重载:OrverLoad
两同三不同
1,在同一个类中,同一个方法名
2,参数列表不同(个数不同,顺序不同,类型不同)
方法的重载跟返回值无关

4.静态变量(类变量)相当于全局变量
用static修饰的变量叫静态变量也叫类变量
用static修饰的方法叫静态方法也叫类方法
修饰代码块叫静态块(先于main之前调用,先块后main)
可以直接通过类名直接调用 也可以 用对象调用,但是推荐类名调用
静态方法中只能调用静态变量
非静态方法中不能定义静态变量http://cdn.u1.huluxia.com/g4/M02/9D/1D/rBAAdmCrxcWANEmDAACIAEDq1ys980.jpg
5.构造方法:方法名和类名相同,没有返回值类型,
每一个类都会有一个默认的无参构造方法
当写了一个有参构造,默认无参构造就会消失
构造方法的作用:
1,实例化对象
2,给成员变量赋值
构造方法包含无参构造和有参构造

三、封装和继承
1.封装的概念:
将类的某些信息隐藏在类内部,不允许外部程序直接访问,
而是通过该类提供的方法来实现对隐藏信息的操作和访问。
封装的好处:
1,隐藏类的实现细节
2,方便加入控制语句
3,方便修改实现
4,只能通过规定方法访问数据

2.继承:extends
继承是子类对父类的拓展,延伸
继承的特点:
1,关键字 extends
2,java类没有多继承,只有单继承,但是可以多重继承
3,不能继承父类的三种情况 private成员、构造方法、子类与父类不在同包,使用默认访问权限的成员
4,java中所有的类的祖先都是Object类
5,不同的叫法 父类:基类,超类 子类:派生类http://cdn.u1.huluxia.com/g4/M02/9D/1D/rBAAdmCrxcaAYaBzAAC4AFlqItY194.jpg
3.super: 对父类对象的引用
super(name):表示调用了父类的的有参构造方法。调用父类的构造方法,必须写在构造方法中的第一行
还可以使用super关键字直接调用父类的方法,如 super.print();(后面的学习还会具体讲)

4.final 最终的
1,修饰变量、常量, 值不可改变
2,修饰方法, 不能被重写
3,修饰类, 不能被继承

5.方法的重写
重写的特点:方法名 参数列表 返回值类型 必须和父类方法一致
访问权限不能比父类的更严格
@Override //注解 规定它下面的方法必须是重写的方法http://cdn.u1.huluxia.com/g4/M02/9D/1D/rBAAdmCrxcaABVnjAAIAAKHQN1I894.jpg
6.总结:http://cdn.u1.huluxia.com/g4/M02/9D/1D/rBAAdmCrxceAHhbTAAIMAJASQYM934.jpg
四、抽象和多态
1.抽象(abstract)
1,意义:抽象类是一种不完全规范,规定子类必须具备哪些方法
2,特点: 抽象类中可以有普通属性和普通方法
抽象类中有构造方法,但是不能实例化
抽象类只能被继承
抽象方法只能被子类重写或者子类继续抽象
有抽象方法的类必须是抽象类
抽象类中不一定有抽象方法

2.多态
什么是多态:
生活中的多态:不同类型的打印机打印效果不同 如下图:http://cdn.u1.huluxia.com/g4/M02/9D/1D/rBAAdmCrxciAEvOEAAFsABBGrNE871.jpg
程序中的多态:
一个对象在不同的载体中呈现不同的形态。
同一个引用类型,调用同一个方法,得到不同的结果。
1,形参多态的必要条件
1,要有继承关系
2,要有方法的重写
3,父类的引用指向子类的对象,

2,用途:可以减少类中的代码量
可以提高代码的可拓展性和可维护性
继承是多态的基础,没有继承就没有多态

3,使用父类作为方法形参和使用父类作为返回值类型是使用多态的常用方式。

3.转型
1,向上转型:把子类转换为父类,属于自动类型转换。
2,向下转型:把父类转换为子类,必须强制类型转换。
注意:
1,向上转型后通过父类引用变量调用的方法是子类覆盖或继承父类的方法,
通过父类引用变量无法调用子类特有的方法。
2,向下转型后可以访问子类特有的方法,必须转换为父类指向的真实子类类型,
否则将出现转换异常(ClassCastException)。

4.instanceof:运算符用于判断一个对象是否属于一个类或实现一个接口。
instanceof:运算符通常和强制类型转换结合使用,先通过instanceof进行类型判断,
再进行相应的强制类型转换。

4.总结http://cdn.u1.huluxia.com/g4/M02/9D/1D/rBAAdmCrxcmAcaAsAAFYAKEjoHc771.jpg
页: [1]
查看完整版本: 【FX】Java面向对象入门笔记(一)