网站首页 > java教程 正文
你知道什么是对象吗?
Do you know what the object is?
01
下面是真实面试案例:
问
知道什么是对象吗?
答
啊?您认真的吗?实不相瞒......我已经20多岁了,依旧是单身!你知道的,强大的人永远是孤独的!
问
那你知道多态吗?
答
我可是正经人,不是渣男!可不会干这种不负责任的事情。
问
知道什么是继承吗?
答
鄙人家徒四壁,四海为家,没有什么财产可以被继承的。
看完上述对话,你笑了吗?
不懂也没有关系,我会偷偷拿出我珍藏多年的Java秘籍,给您一一讲解:
面向对象要学什么
面向对象的重点学习什么?
- 学习已有的对象并且使用
- 学习如何自己设计对象并且使用---面向对象的语法
初步认识类和对象:
类类似于:设计图,是对象共同特征的描述。
而对象是真实存在的具体东西。在Java中,必须先设计类,才能获得对象。
那么如何定义类?
如何定义类?
类名 对象名 = new 类名();
类的五大成员:
- 属性
- 构造方法
- 方法
- 代码块
- 内部类
public class 类名{
//1、成员变量(代表属性,一般是名词)
String name;
double height;
//2、构造器 构造方法
public 类名(){
}//无参构造
//3、成员方法(代表行为,一般是动词)
public void study(){
}
//4、代码块
//5、内部类
}
干货满满
Java的面向对象三大特性:我们一一讲解。
1
面向对象 · 封装
封装告诉我们:如何正确设计对象的属性和方法
封装的原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为。
public、private、protected修饰符:
说到封装,Java提供了四种访问权限修饰符,public、private、protected以及空着不写,不加访问修饰符,表示包级可见。先看上述修饰符的作用。
权限修饰符的分类:
由小到大(private<空着不写(缺省/默认)< protected < public)。
修饰符 | 当前类 | 子类 | 不同包 | 同包 | _ |
public | √ | √ | √ | √ | _ |
空着不写 | √ | × | × | √ | _ |
private | √ | × | × | × | _ |
protected | √ | √ | × | √ | _ |
_ | _ | _ | _ | _ | _ |
封装是将数据和对数据的操作封装在一个类中,通过定义类的成员变量和方法来实现。封装可以隐藏类的内部实现细节,使类的使用者只能通过公共接口访问和操作数据,而无需关心其具体实现。
如果子类的方法重写了父类的方法,那么子类中该方法的访问级别不允许低于父类的访问级别。为了确保可以使用父类实例的地方都可以使用子类实例去代替,确保满足里氏替换原则。
private关键字:
可以修饰成员(成员变量和成员方法)
被private修饰的成员只能在本类中才能访问
针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作。
提供"setXxx(参数)"方法,用于给成员变量赋值,方法用public修饰。
提供"getXxx()"方法,用于获取成员变量的值,方法用public修饰。
public class Example {
private String name;
public String getName() {
return name + "";
}
public void setName (String name ) {
this.name = name;
}
}
理解封装思想的好处?
- 让编程变得很简单,有什么事,找对象,调方法行。
- 降低我们的学习成本,可以少学、少记,或者说压根不用学,不用记对象有哪些方法,有需要的时候去找就行。
2
面向对象 · 继承
继承是通过建立类之间的继承关系,让一个类(子类)可以继承另一个类(父类)的属性和方法。子类可以继承父类的非私有成员,并可以通过扩展、修改或重写继承的成员来实现自己的行为。
注意事项:
通过继承,可以减少重复代码的编写,提高代码的可维护性和可扩展性。
在Java中,一个类只能继承一个直接父类,但可以通过多层继承(多级继承)建立更复杂的继承关系。
继承类加载初始化顺序:
- 初始化父类再初始化子类
- 先执行初始化对象中属性,再执行构造方法中的初始化。
(向上滑动启阅)
致同学们:
Java继承后的加载顺序:
- 父类对象属性初始化
- 父类对象构造方法
- 子类对象属性初始化
- 子类对象构造方法
举个栗子:
Animal:动物类
public class Animal {
/**名称*/
public String name;
/**颜色*/
public String color;
/**显示信息*/
public void show(){
System.out.println("名称:"+name+",颜色:"+color);
}
}
Cat:猫类
/**猫继承自动物,子类 is a 父类*/
public class Cat extends Animal {
/**价格*/
public double price;
}
Cat并没有定义color属性,但在使用中可以调用,是因为Cat继承了父类Animal,父类的非私有成员将被子类继承。如果再定义其它的动物类则无须再反复定义name,color与show方法。
3
面向对象 · 多态
多态概念:
多态是指同一种操作可以在不同的对象上产生不同的行为。在Java中,多态性体现为通过父类类型的引用指向子类对象,并根据实际的对象类型来调用相应的方法。
多态的前提:有继承关系关系;有父类引用指向子类对象 。
Animal cat = new Cat();
使用多态时的细节:
多态的弊端:
- 不能使用子类的特有功能
- 当调用成员方法的时候,编译看左边,运行看右边,那么在编译的时候会先检查左边的父类中有没有这个方法,如果没有直接报错。
引用数据类型的类型转换,有几种方式?
多态的好处:
多态性可以提高代码的灵活性和扩展性,使代码更易于维护和扩展。它也是实现动态绑定和方法重写的基础。
若您有一定框架基础知识,接触MVC三层模型的时候,你可以会发现,service为什么要写成接口呢?
service会有多种不同的实现。而service就是我们平时用多态最多的地方之一。
若您喜欢这篇文章,欢迎转载分享,非常感谢您的阅读,我将保持初心,持续输出更加实用精彩的文章。
希望大家可以多多关注我哦!
猜你喜欢
- 2024-10-07 Java基本知识点概念(java基本知识点概念图片)
- 2024-10-07 Java知识点(含PDF)(java必学知识点)
- 2024-10-07 java基础知识点(java基础知识点面试题)
- 2024-10-07 2022最新Java核心知识点汇总,从入门到精通一步到位
- 2024-10-07 纯干货:Java学习过程中的21个知识点和技术点
- 2024-10-07 Java基础知识点有哪些 如何快速步入Java行业
- 2024-10-07 JAVA编程基础知识点(java编程基础知识点总结)
- 2024-10-07 java核心知识点最全整理(java核心知识pdf)
- 2024-10-07 初学者怎么学Java编程 Java哪些知识点最重要
- 2024-10-07 Java基础知识点我替你总结了,这么好的事情怎么能错过?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)