面向对象-day02
###代码块
**局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)
代码块的格式:要使用{}括起来
常见代码块的应用
a:局部代码块
- 在方法中出现;限定变量生命周期,及早释放,提高内存利用率
b:构造代码块 (初始化块)
- 在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
c:静态代码块
在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。
一般用于加载驱动
/* 代码块的例题 */ class Test {public static void main(String[] args) {{System.out.println("main中局部代码块");}Code c=new Code();c.testOne();c.testTwo("zhangsan",10);} }class Code {private String name;private int age;public void testOne(){System.out.println("无参函数");{System.out.println("testOne中局部代码块");}}public void testTwo(String name,int age) {this.name=name;this.age=age;System.out.println("有参函数");{System.out.println("testTwo中局部代码块");}}{System.out.println("构造代码块");}static {System.out.println("静态代码块");} }复制代码
main中局部代码块
静态代码块
构造代码块
无参函数
testOne中局部代码块
testTwo中局部代码块
有参函数
###编译结果:
testTwo中局部代码块wanghui@wanghui-Inspiron-3543:~/练习 java Test main中局部代码块 静态代码块 构造代码块 无参函数 testOne中局部代码块 有参函数 testTwo中局部代码块
从该题中知道了静态代码块的优先级要大于构造代码块,且静态代码块只运行一次
###继承extends
爷爷...爸爸...儿子的关系
#面向对象(Java中类的继承特点)
- A:Java中类的继承特点
- a:Java只支持单继承,不支持多继承。(一个儿子不能有两个以上的个爹)
- 有些语言是支持多继承,格式:extends 类1,类2,...
- b:Java支持多层继承(继承体系)
- a:Java只支持单继承,不支持多继承。(一个儿子不能有两个以上的个爹)
- B:案例演示
- Java中类的继承特点
- 如果想用这个体系的所有功能用最底层的类创建对象
- 如果想看这个体系的共性功能,看最顶层的类
- Java中类的继承特点
###08.06_面向对象(继承的注意事项和什么时候使用继承)(掌握)
A:继承的注意事项
a:子类只能继承父类所有非私有的成员(成员方法和成员变量)
b:子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法。
c:不要为了部分功能而去继承
this与super的区别
this:代表当前对象的引用,谁来调用我,我就代表谁
super:代表当前对象父类的引用
/* 创建一个extends的例题,让子继承父 */class Demo_Extends {public static void main(String[] args){Son s=new Son();s.speak("zhangsan",10); }}class Father {private String name; //私有成员变量private int age; //私有成员变量public void speak(String name,int age) { //有参函数this.name=name;this.age=age;System.out.println("name:"+name+" age:"+age+" xixi");{System.out.println("这是一个father构造代码块"); }} }class Son extends Father { //子继承父{System.out.println("这是一个son构造代码块");}static{System.out.println("这是一个静态代码块");} } 复制代码
这是一个son构造代码块
这是一个father构造代码块
name:zhangsan age:10 xixi
###编译结果:
wanghui@wanghui-Inspiron-3543:~/练习 java Demo_Extends 这是一个静态代码块 这是一个son构造代码块 name:zhangsan age:10 xixi 这是一个father构造代码块
此处顺序没搞太明白
- A:Java中类的继承特点
面向对象(方法重写概述及其应用)
A:什么是方法重写
重写:子父类出现了一模一样的方法(注意:返回值类型可以是子父类,这个我们学完面向对象讲)
B:方法重写的应用:
当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法。这样,即沿袭了父类的功能,又定义了子类特有的内容。
/*电脑有显示功能,有qq聊天功能,如今想加一个微信聊天功能,使用重写实现
*/
class Computer {public static void main(String[] args) {NowFunction now=new NowFunction();now.show(); now.chat();}
}class Function {public void show() { //显示的方法System.out.println("我能显示"); }public void chat() { //聊天的方法System.out.println("我能用qq聊天");}
}class NowFunction extends Function { //继承并重写方法chatpublic void chat() {super.chat();System.out.println("我能用微信聊天");}
}
复制代码
预测显示结果:
我能显示
我能用qq聊天
我能用微信聊天
###编译结果:
wanghui@wanghui-Inspiron-3543:~/练习 java Computer 我能显示 我能用qq聊天 我能用微信聊天
面向对象(final关键字修饰类,方法以及变量的特点)(掌握)
A:final概述
B:final修饰特点
- 修饰类,类不能被继承
- 修饰变量,变量就变成了常量,只能被赋值一次
- 修饰方法,方法不能被重写
面向对象(final关键字修饰局部变量)
A:案例演示
方法内部或者方法声明上都演示一下(了解)
基本类型,是值不能被改变
引用类型,是地址值不能被改变,对象中的属性可以改变
转载于:https://juejin.im/post/5bc35af75188255c7664237b
面向对象-day02相关推荐
- 【java学习之路】(java SE篇)005.面向对象基础入门part2
第三章 面向对象 上文链接 8.package和import /* * package:包,对应到文件系统就是多级目录 * 为了解决两个问题: * 1.文件同名问题 * 2.为了方便管理类,将具体处理 ...
- java面向对象基础
java数组 文章目录 java面向对象初步认识 软件开发 面向对象和面向过程 对象 对象和类 类的定义 类和对象的练习 类的方法 类的方法的练习 java面向对象初步认识 软件开发 软件开发分为了结 ...
- Java基础--面向对象(上)
面向对象的三大特征:封装继承多态 1.类和对象 类:抽象不具体的事物,通常表示一类事物的类别,在程序中表示模板 对象:具体的,真实存在的,可以看到的 1.1 如何创建类 类中放所有对象共有的数据/属性 ...
- 第一阶段:Java基础总复习一一一和一一一面向对象OOP总复习
一.Java基础 0.Maven的介绍: 官网:https://maven.apache.org/download.cgi (1)Maven是什么? Maven 是 Apache 开源组织奉献的一个开 ...
- Java学习笔记Day02
Java学习笔记Day02 一.细化Hello程序 1.详解代码 //公有的类,叫做Hello public class Hello{//主方法public static void main(Stri ...
- 学习日志 -- Day02
Day02 一.Hello的扩展 1.详解代码 /**编写人:何老师(千锋彭于晏)时间:2022年4月19日 *///公有的类名,叫做Hello public class Hello{//主方法,程序 ...
- js高级:面向对象+ES6
js高级:面向对象+ES6 文章目录 js高级:面向对象+ES6 day01 一.ES6中的类和对象 1.1对象 1.2类 1.3创建类 1.4类constructor构造函数 1.5类中添加方法 1 ...
- Java基础知识复习01:从基础知识---面向对象(后续会更新)
在我的资源里有:pdf对应的完整内容需要的可以自行下载,无偿分享给大家 一.快捷键 Alt + / : 1)在java类中,要输出main方法,只要输入main然后用此快捷键按回车即可: 2)要输出S ...
- day02 JavaScript
day02 JavaScript 1. JavaScript 1.1 JavaScript的起源 在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成 ...
最新文章
- Android深度探索--HAL与驱动开发----第一章读书笔记
- UML第一次作业:UML用例图绘制
- 远程链接oracle 12514,数据库建好后,本地连接正常,远程连接ORA-12514错误
- java编码-多重(乱码)
- java结丹期(13)----javaweb(responserequestservletcontext)
- adobe字体_Adobe发布全新LOGO!字体颜色变红了
- 支付宝小程序面向个人开放了!我将以一个 Demo 为例讲解整个流程。
- java自己实现ioc_springioc原理、springmvc项目分析、自己实现IOC
- mkdir 与mkdir -p 区别
- Python下的云计算(OpenStack技术书籍)
- python 读取图片颜色值生成excel像素画
- 49 张图详解 WiFi 的 26 个知识点
- @OneToMany mappedBy
- creo扫描选择多条链作为轨迹_Proe/Creo创建扭簧
- GIS应用技巧之植被制图
- 解析搜狗微信文章页面源码的日期publish_time为空的解决办法(只谈思路,不提供代码)
- MSP430指令初探
- UI设计--蓝湖切图
- 在计算机睡眠时主机关闭,电脑为什么睡眠后就关机怎么办
- Pytorch实战3:DCGAN深度卷积对抗生成网络生成动漫头像
热门文章
- easyui下拉框用法
- clickhouse 的mysql表引擎
- 语音合成论文与韩国小哥“撞车”后续:英伟达“赶紧”把代码开源了
- 火爆GitHub:100天搞定机器学习编程(超赞信息图+代码+数据集)
- 苹果华人工程师被捕后续,按“商业间谍”指控,本人不认罪
- AI议题首次进入世界移动大会,打响第一枪的是LG
- G盘文件系统损坏要如何恢复数据
- 口头禅可能让你丢掉工作,你所不知道的工作沟通禁忌
- iOS开发实践之网络检測Reachability
- C#:识别一个dll文件是Debug模式还是Release模式编译的