网站首页 > java教程 正文
一、面向对象的三大特征:封装,继承,多态。
(一)封装
什么是封装? 隐藏实现细节,暴露出合适的访问方式。
1、封装的实现步骤
? 一般对成员变量使用private(私有)关键字修饰进行隐藏,private修饰后该成员变量就只能在当前类中访问。
? 提供public修饰的公开的getter、setter方法暴露其取值和赋值。
(二)继承
什么是继承?Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立起父子关系。
1、使用继承的好处
当子类继承父类后,就可以直接使用父类公共的属性和方法了。因此,用好这个技术可以很好的我们提高代码的复用性。
2、格式
public class Student extends People {}
Student称为子类(派生类),People称为父类(基类 或超类)。
3、继承的特点
子类可以继承父类的属性和行为,但是子类不能继承父类的构造器。
Java是单继承模式:一个类只能继承一个直接父类。
Java不支持多继承、但是支持多层继承。
Java中所有的类都是Object类的子类。
4、在子类方法中访问成员(成员变量、成员方法)满足:就近原则
1)、先子类局部范围找
2)、然后子类成员范围找
3)、然后父类成员范围找,如果父类范围还没有找到则报错。
(三)多态
同类型的对象,执行同一个行为,会表现出不同的行为特征。
1、多态形式
父类类型 对象名称 = new 子类构造器;
接口 对象名称 = new 实现类构造器;
2、多态中成员访问特点
方法调用:编译看左边,运行看右边。
变量调用:编译看左边,运行也看左边。(多态侧重行为多态)
3、多态的前提
有继承/实现关系;有父类引用指向子类对象;有方法重写。
4、多态的优势
在多态形式下,右边对象可以实现解耦合,便于扩展和维护。
二、类、对象概念
类(设计图):是对象共同特征的描述。
对象:是真实存在的具体实例。
三、类的定义
① 格式
public class 类名 {
1、成员变量
2、成员方法
3、构造器
4、代码块
5、内部类
}
② 创建对象
类名 对象名 = new 类名();
③ 访问成员
对象名.成员变量
对象名.方法名()
? 注意事项:
l 成员变量的完整定义格式是:
修饰符 数据类型 变量名称 = 初始化值; 一般无需指定初始化值,存在默认值。
l 类名首字母建议大写,且有意义,满足“驼峰模式”。
l 一个Java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。
2 实际开发中建议还是一个文件定义一个class类。
四、构造器
(一)构造器的作用
用于初始化一个类的对象,并返回对象的地址。
(二)构造器的定义格式
修饰符 类名(形参列表){
...
}
(三)构造器分类
? 无参数构造器(默认存在的):初始化的对象时,成员变量的数据均采用默认值。
? 有参数构造器:在初始化对象的时候,同时可以为对象进行赋值。
2 注意事项:
? 任何类定义出来,默认就自带了无参数构造器,写不写都有。
? 一旦定义了有参数构造器,无参数构造器就没有了,此时就需要自己写一个无参数构造器了。
五、this关键字
(一)this关键字可以出现在成员方法、构造器中,代表当前对象的地址。
(二)作用:访问当前对象的成员变量、成员方法。
六、super关键字
可以通过super关键字,指定访问父类的成员。
七、标准JavaBean
标准JavaBean须满足如下要求:
? 成员变量使用 private 修饰。
? 提供每一个成员变量对应的 setXxx() / getXxx()。
? 必须提供一个无参构造器。
八、方法重写
什么是方法重写?在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类这个方法是重写的方法。
猜你喜欢
- 2025-01-17 Sass基础语法
- 2025-01-17 Java基础语法一
- 2025-01-17 Java的基础语法都有什么
- 2025-01-17 Java基础语法
- 2025-01-17 Java入门:一分钟学会基础语法
- 2025-01-17 Java教程的基础语法大汇总
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)