软件设计之Java入门视频(12)

软件设计之Java入门视频(12)

视频教程来自B站尚硅谷:

尚硅谷Java入门视频教程,宋红康java基础视频
相关文件资料(百度网盘)
提取密码:8op3
idea 下载可以关注 软件管家 公众号

学习内容:

该视频共分为1-717部分
本次内容涉及330-359
在写代码时,总是需要来回切换界面来看代码要求,这里推荐Snipaste,可以把截图以窗口形式放在屏幕上
记录内容:

  1. 代码块
  2. final 关键字
  3. 抽象类与方法
  4. 接口

1、代码块

1)作用:用来初始化类、对象
2)代码块如果有修饰的话,只能用static
3)分类:静态代码块非静态代码块
静态代码块
  a)内部可以有输出语句
  b)随着类的加载而执行,而且只执行一次
  c)静态代码块的执行要先于非静态代码块
非静态代码块
  a)内部可以有输出语句
  b)随着对象的创建而执行,每创建一个对象,就执行一次非静态代码块
  c)作用:可以在创建对象时,对对象属性等进行初始化

由父及子,静态先行

main方法作为程序入口(static),仍遵循由父及子规定,所以先1,4,再7
然后再执行父类Person中的代码块–>构造器;
随后转到子类Animal中执行代码块–>构造器;

package test;public class BlockTest {}class Person{static {System.out.println("1");}{System.out.println("2");}public Person(){super();System.out.println("3");}
}class Animal extends Person{static {System.out.println("4");}{System.out.println("5");}public Animal(){super();System.out.println("6");}public static void main(String[] args) {System.out.println("7");new Animal();}
}
}//输出顺序1 4 7 2 3 5 6

对象赋值顺序

1)默认初始化
2)显式初始化/在代码块中赋值 [看代码先后顺序]
3)构造器中初始化
4)通过对象.属性或对象.方法赋值
5)接口

final关键字

1)final可以用来修饰的结构:类、方法、变量
2)final用来修饰类:此类不能被其他类所继承
3)final用来修饰方法:此方法不能被重写
4)final用来修饰变量:“此时的变量”就称为一个常量
  a)final修饰属性:可以考虑赋值的位置:显式初始化、代码块中初始化、构造器中初始化
  b)final修饰局部变量:修饰形参时,需要给常量形参赋一个实参,并只能在方法内使用这个不能进行赋值的形参
5)static final用来修饰属性:全局常量

package test;public class OrderTest {final int WIDTH = 0;final int LEFT;final int RIGHT;{LEFT = 1;}public OrderTest(){RIGHT = 1;}public OrderTest(int m){RIGHT = m;}
}

抽象类与方法

抽象类
1)抽象类不能实例化
2)抽象类中一定有构造器,便于子类实例化时调用(设计:子类对象实例化全过程)
3)开发中,都会提供抽象类的子类,让子类对象实例化
抽象方法
1)抽象方法只有方法的声明,没有方法体
2)包含抽象方法的类一定是抽象类;抽象类可以不包括抽象方法
3)若子类重写了父类中的所有的抽象方法后,此子类方可实例化
4)若子类没有重写父类中所有的抽象方法,则此子类也是一个抽象类,需要使用abstract
注意点
1)abstract不能用来修饰:属性、构造器等结构
2)abstract不能用来修饰私有方法、静态方法、final的方法、final的类
静态方法与static不同用的解释:抽象类不能直接实例化,而静态方法不依赖于实例,可以直接通过类名调用。把一个方法同时定义为abstract和static在语义上是矛盾的,因为抽象方法需要实例化的子类来实现,而静态方法在没有实例时就可以调用

抽象类的匿名子类对象

//Person是抽象类
Person p = new Person;//这是无法执行的,因为抽象类无法造对象
//如果worker是Person子类
Worker worker = new Workder();  //有类的名字;有对象名字
Person p = new Person(){   //此时匿名子类的对象p 没有子类名字;有对象名字@Override //重写抽象方法public void eat(){}
}

4、接口

1)接口使用interface定义
2)Java中,类和接口是并列的两个结构
3)定义接口中的成员:
  a)JDK7及以前:只能定义全局常量(public static final书写时可省略不写)和抽象方法(public abstract)
  b)JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法与默认方法(略)
4)接口中不能定义构造器,意味着不能实例化
5) Java开发中,接口通过让类去实现(implements)方式使用
  a)如果实现类覆盖了接口中所有的抽象方法,则此实现类可以实例化
  b)如果实现类没有覆盖接口中所有的抽象方法,则该类仍为一个抽象类
6)Java类可以实现多个接口
  a)格式: class AA extends BB implements CC,DD,EE
7)接口与接口之间可以继承,可多继承
在这里插入图片描述

package test;public class InterfaceTest {public static void main(String[] args) {Fly fly = new Fly();fly.fly();}
}interface Flyable{//全局常量public static final int MAX_SPEED = 10;int MIN_SPEED = 0;//抽象方法public abstract void fly();
}class Fly implements Flyable{@Overridepublic void fly() {System.out.println("通过引擎起飞");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/867575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日一题~ (判断是否是合法的出栈序列)

大概的题意: 将 1-n 按照顺序进栈,问 输入的序列是否是合法的出栈序列。 遍历序列,如果当前这个值a小于 栈顶的值,说明它还未进栈(因为我们是按照顺序进栈的),所以我们将 一些元素进栈&#xff…

nacos源码 nacos注册中心1.4.x 源码 spring cloud alibaba 的discovery做了什么 nacos客户端是如何启动的(二)

spring-cloud-alibaba-nacos-discovery 老版本中如何调用nacos的 1. 整体结构: 2. 思考: 如果你来做,如何做client 向server注册服务: 1.2.1 读yml,或本地文件找到服务器地址,以及其他配置 1.2.2 向server注册服务 1.2…

6800和8080单片机读写时序和液晶屏接口

前言: 随着单片机发展,集成度越来越高,因此目前单片机较少使用RD和WR信号操作外设,因此很多时候,变成了6800和8080单片机读写液晶屏了。早期的读写本质上是对一个地址进行即时的操作,现在可能是等数据送到…

网易游戏员工怒怼丁磊上热搜:每天员工陪你演戏点赞有意思吗

【头部财经】近日,网易游戏一员工在内部群怒怼丁磊的聊天记录曝光,引发网友关注。据头部财经了解,该员工名叫石佳煊,是网易游戏的游戏开发工程师,毕业于华盛顿大学,已在网易工作四年多。 截图显示&#xf…

【国产开源可视化引擎Meta2d.js】铅笔

铅笔 铅笔是可以任意涂鸦的绘图小工具 在线体验: 乐吾乐2D可视化 示例: // 开始铅笔绘画 meta2d.drawingPencil();// 鼠标抬起结束// 停止铅笔绘画(关闭铅笔绘画状态) meta2d.stopPencil(); 国产开源 乐吾乐潜心研发&#xff…

基于星火大模型的群聊对话分角色要素提取挑战赛

赛事任务与数据 2024 iFLYTEK A.I.开发者大赛-讯飞开放平台 (xfyun.cn) 从给定的<客服>与<客户>的群聊对话中, 提取出指定的字段信息&#xff0c;待提取的全部字段见下数据说明。 赛题方提供了184条真实场景的群聊对话数据以及人工标注后的字段提取结果&#xf…

AIGC专栏12——EasyAnimateV3发布详解 支持图文生视频 最大支持960x960x144帧视频生成

AIGC专栏12——EasyAnimateV3发布详解 支持图&文生视频 最大支持960x960x144帧视频生成 学习前言项目特点生成效果相关地址汇总项目主页Huggingface体验地址Modelscope体验地址源码下载地址 EasyAnimate V3详解技术储备Diffusion Transformer (DiT)Hybrid Motion ModuleU-V…

XXL-JOB中断信号感知

目录 背景 思路 实现逻辑 总结 背景 在使用xxl-job框架时&#xff0c;由于系统是由线程池去做异步逻辑&#xff0c;然后主线程等待&#xff0c;在控制台手动停止时&#xff0c;会出现异步线程不感知信号中断的场景&#xff0c;如下场景 而此时如果人工在控制台停止xxl-job执…

笔记13:switch多分支选择语句

引例&#xff1a; 输入1-5中的任意一共数字&#xff0c;对应的打印字符A,B,C,D,E int num 0; printf("Input a number[1,5]:"); scanf("%d"&#xff0c;&num); if( num 1)printf("A\n"); else if(num2)printf("B\n"); else i…

Alibaba Cloud Toolkit前端使用proxy代理配置

1、vscode 先安装插件 Alibaba Cloud Toolkit 2、前端代码&#xff1a; /personnel: {// target: http://xxx.xx.xxx.xx:9100, // 测试环境// target: http://xxx.xx.xxx.xx:9200, // 线上环境target: http://127.0.0.1:18002, // toolkit 代理changeOrigin: true,},3、打开插…

Android LayoutInflater 深度解析

在 Android 开发中&#xff0c;LayoutInflater 是一个非常重要的工具。它允许我们从 XML 布局文件中动态地创建 View 对象&#xff0c;从而使得 UI 的创建和管理更加灵活。本文将深入解析 android.view.LayoutInflater&#xff0c;包括它的基本用法、常见问题以及高级用法。 什…

MySQL架构和工作流程

引言&#xff1a;MySQL执行一条sql语句期间发生了什么&#xff1f; 想要搞清楚这个问题&#xff0c;我们必须了解MySQL的体系结构和工作流程 一、MySQL体系结构 MySQL由以下几个部分组成 一、server层 1.MySQL Connnectors连接器&#xff0c;MySQL的连接池组件&#xff0c;…

数据结构+算法-实现一个计算器

在学习栈的数据结构的时候讲到可以用栈来实现一个计算器的功能&#xff0c;那么这个功能是如何实现的呢&#xff1f; 采用栈模拟得方式来实现一个计算器 要实现如下的功能: 字符串如何转为整数 2.处理加减法 如何处理加减法呢&#xff1f; 5-128 给第一个数字前面放一个号…

UEC++ 虚幻5第三人称射击游戏(二)

UEC++ 虚幻5第三人称射击游戏(二) 派生榴弹类武器 新建一个继承自Weapon的子类作为派生榴弹类武器 将Weapon类中的Fire函数添加virtual关键字变为虚函数让榴弹类继承重写 在ProjectileWeapon中重写Fire函数,新建生成投射物的模版变量 Fire函数重写逻辑 代码//生成的投射物U…

从文本到安全图像:自动提示优化防止不当内容生成

T2I生成技术已经得到了广泛关注&#xff0c;并见证了如GLIDE、Imagen、DALL-E 2、Stable Diffusion等大型生成模型的发展。尽管这些模型能够根据文本描述生成高质量的图像&#xff0c;促进了书籍插图、品牌标识设计、游戏场景创作等多种实际应用&#xff0c;但它们也被恶意用户…

使用京东云主机搭建幻兽帕鲁游戏联机服务器全流程,0基础教程

使用京东云服务器搭建幻兽帕鲁Palworld游戏联机服务器教程&#xff0c;非常简单&#xff0c;京东云推出幻兽帕鲁镜像系统&#xff0c;镜像直接选择幻兽帕鲁镜像即可一键自动部署&#xff0c;不需要手动操作&#xff0c;真正的新手0基础部署幻兽帕鲁&#xff0c;阿腾云整理基于京…

Python学习笔记30:进阶篇(十九)pygame的使用之显示与窗口管理

前言 基础模块的知识通过这么长时间的学习已经有所了解&#xff0c;更加深入的话需要通过完成各种项目&#xff0c;在这个过程中逐渐学习&#xff0c;成长。 我们的下一步目标是完成python crash course中的外星人入侵项目&#xff0c;这是一个2D游戏项目。在这之前&#xff…

YOLOv8改进 | 注意力机制 | 结合静态和动态上下文信息的注意力机制

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

力扣双指针算法题目:双数之和,三数之和,四数之和

目录 一&#xff1a;双数之和 1.题目&#xff1a; 2.思路解析 3.代码 二&#xff1a;三数之和 1.题目 2.思路解析 3&#xff0c;代码 三&#xff1a;四数字之和 1.题目 2.思路解析 3.代码 一&#xff1a;双数之和 1.题目&#xff1a; 输入一个递增排序的数组和一…

贵州建筑三类人员安全员2024年考试最新题库练习题

一、单选题 1.建设工程安全管理的方针是&#xff08;&#xff09;。 A.安全第一&#xff0c;预防为主&#xff0c;综合治理 B.质量第一&#xff0c;兼顾安全 C.安全至上 D.安全责任重于泰山 答案&#xff1a;A 2.安全生产管理的根本目的是&#xff08;&#xff09;。 A.…