首页 > 其他分享 >12.面向对象(4)

12.面向对象(4)

时间:2024-09-04 19:24:46浏览次数:8  
标签:12 内部 静态 面向对象 修饰 new 方法 final

MODULE 12 面向对象

  1. 知道final修饰成员之后特点
  2. 会使用静态代码块以及知道静态代码块的使用场景
  3. 会使用匿名内部类

一.权限修饰符

(一)概述

在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容 会有不同的访问权限

(1)public:公共的,最高权限,被public修饰的成员,在哪里都能访问

(2)protect:受保护的

(3)default:默认的,不可以将default写出来

(4)private:私有的,只能在自己的类中直接访问

(二)不同权限的访问能力

Public具有最大权限,private有最小权限

编写代码时,如果没有特殊考虑,建议这样使用权限:

(1)属性:用private -> 封装思想

(2)成员方法:public -> 便于调用

(3)构造public -> 便于new对象

二.final关键字

1.概述:最终的

2.使用:

(1)修饰一个类

(2)修饰一个方法

(3)修饰一个局部变量

(4)修饰一个成员变量

(5)修饰一个对象

3.怎么学final:只需要知道被final修饰之后特点是啥即可

(一)final修饰类

1.格式:

public final class 类名{}

2.特点:

被final修饰的类不能被继承

(二)final修饰方法

1.格式:

修饰符 final 返回值类型 方法名(形参){

方法体

return 结果

}

2.特点:

被final修饰的方法,不能被重写

3.注意

final 和abstract不能同时修饰一个方法

(三)final修饰局部变量

1.格式:

final 数据类型 变量名 = 值

2.特点:

被final 修饰的变量不能二次赋值

(四)final修饰对象

1.格式:

final 数据类型 对象名 = new 对象();

2.特点:

被final修饰的对象,地址值不能改,但是对象中的属性值可以改变

(五)final修饰成员变量

1.格式

final 数据类型 变量名 = 值

2.特点:

(1)需要手动赋值

(2)不能二次赋值

三.代码块

(一)构造代码块

1.格式
{

代码

}

2.执行特点:优先于构造方法执行,每new一次,就会执行一次

(二)静态代码块

1.格式:

static{

代码

}

2.执行特点:

静态代码块优先于构造代码块和构造方法执行的,而且只执行一次

(三)静态代码块使用场景

如果想让一些数据,而且只需要初始化一次,就可以将这些数据放到静态代码块中

四.内部类

1.什么时候使用内部类:

当一个事物的内部,还有一个部分需要完整的结构去描述,而这个内部的完整 结构又只为外部事物提供服务,那么整个内部的完成结构最好使用内部类

2.在java中允许一个类的定义位于另外一个类的内部,前者称为内部类,后者称为 外部类

class A{

class B{

}

}

3.分类

成员内部类(静态,非静态)

局部内部类

匿名内部类(重点)

(一)静态成员内部类

1.格式:直接在定义内部类的时候加上static关键字

public class A{

static class B{

}

}

2.注意:

(1)内部类可以定义属性,方法,构造等

(2)静态内部类可以被final或者abstract修饰

被final修饰之后,不能被继承

被abstract修饰后,不能new

(3)静态内部类不能调用外部的非静态成员

(4)内部类可以被四种权限修饰符修饰

3.调用静态内部类成员:

外部类.内部类 对象名 = new 外部类.内部类()

(二)非静态成员内部类

1.格式:直接在定义内部类的时候加上static关键字

public class A{

class B{

}

}

2.注意:

(1)内部类可以定义属性,方法,构造等

(2)静态内部类可以被final或者abstract修饰

被final修饰之后,不能被继承

被abstract修饰后,不能new

(3)静态内部类不能调用外部的非静态成员

(4)内部类可以被四种权限修饰符修饰

3.调用非静态内部类成员:

外部类.内部类 对象名 = new 外部类().new 内部类()

外部类的成员变量和内部类的成员变量以及内部类的局部变量重名时,怎么区分?

(三)局部内部类

1.局部内部类基本操作

(1)可以定义在方法中,代码块中,构造中

2.局部内部类实际操作

(1)接口类型作为方法参数传递和返回

A.接口作为方法参数,传递实参时,传递的是实现类对象

B.接口作为返回值返回,实际返回的是实现类对象

(2)抽象类作为方法参数和返回值

A.抽象类作为方法参数,传递实参时,传递的是其子类对象

B.抽象类作为返回值返回,实际返回的是其子类对象

(3)普通类做方法参数和返回值

A.普通类作为方法参数传递,传递的是对象

B.普通类作为方法返回值返回,返回的是对象

(4)局部内部类实际操作

(四)匿名内部类(重点)

所谓的匿名内部类,可以理解为没有显示声明出来的内部类

1.问题描述:我们如果想实现接口吗,简单使用一次抽象方法,我们就需要创建一个 实现类,实现这个接口,重写抽象方法,还要new实现类对象,所以我们在想如果就 单纯的想使用一次接口中的方法,我们能不能不这么麻烦?

(1)创建实现类,实现接口

(2)重写方法

(3)创建实现类对象

(4)调用方法

2.如果就想单纯的使用一下接口中的方法,我们没必要经过以上四步,可以四合一

3.匿名内部类怎么学:就按照一种格式,这一种格式就代表了实现类对象或者子类 对象

4.格式:

new 接口/抽象类(){

重写方法

}.重写的方法();

========================================

类名 对象名 = new 接口/抽象类(){

重写方法

}

对象名.重写的方法();

(1)匿名内部类复杂用法_当参数传递

(2)匿名内部类的复杂用法_当返回值返回

5.什么时候使用匿名内部类:

当简单调用一次接口中的方法,我们就可以使用匿名内部类

6.将一种格式化代表实现类对象或者子类对象来看待学习

7.匿名内部类会编译生成的不用管,我们只需要利用咱们讲的格式去new对象,调 用重写的方法即可

标签:12,内部,静态,面向对象,修饰,new,方法,final
From: https://www.cnblogs.com/swh666/p/18397222

相关文章

  • 探秘JavaScript深度领域:精通面向对象编程、虚拟DOM等核心技术
    JaScript作为前端开发的核心技术之一,凭借其强大的灵活性和广泛的应用场景,吸引了大量开发者深入学习。在探秘JaScript的深度领域时,面向对象编程和虚拟DOM等核心技术无疑是两个重要的学习方向。面向对象编程(OOP)在JaScript中扮演着重要角色。虽然JaScript是一种基于原型的语言,而非传......
  • Android 12.0 wifi设置静态ip功能实现
    1.前言在12.0的系统rom定制化开发中,在某些功能开发中,在wifi模块中,有产品需要要求设置wifi静态ip功能,而系统中wifi连接后ip是动态的,每次开机后连接wifi的ip就是不固定的,所以产品需要采用固定ip,就需要实现静态ip功能2.wifi设置静态ip功能实现的核心类frameworks\base\wifi\ja......
  • 第121期 CrowdHuman密集行人数据集
    引言亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。一、背景在人工智能与计算机视觉领域,人群场景下的目标检测一直是一个具有挑战性的......
  • 第122期 UCF50动作识别数据集
    引言亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。一、背景在人工智能和计算机视觉领域,动作识别一直是研究的热点之一。为了推动这一......
  • 第123期 Waymo自动驾驶数据集
    引言亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。Waymo开放数据集:自动驾驶的未来之路随着科技的飞速发展,自动驾驶技术正逐渐从科幻......
  • 第124期 CCD车祸数据集
    引言亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。车祸数据集:为自动驾驶安全保驾护航一、背景随着科技的飞速发展,自动驾驶技术已成为......
  • 第125期 饮料废弃物数据集
    引言亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。饮料废弃物分类数据集及其应用探索一、背景在当今社会,随着城市化进程的加速和人们......
  • 神奇的C语言输出12天圣诞节歌词代码
    12天圣诞节程序怎样运行?1988年,一个令人印象深刻且令人敬畏的C代码,代号为xmas.c,在国际混淆C代码竞赛中获胜。该程序甚至比其输出的“压缩”类型还要小,代表了文本压缩标准的全新方式。评委们认为,这个程序像是随意敲击键盘所得到的。但该程序神奇地打印出12天圣诞节的歌词,仅仅......
  • 【FMC129】基于VITA57.1标准的JESD204B接口8通道125MSPS 16位AD采集子卡模块
     板卡概述       FMC129是一款8通道125MHz采样率16位AD采集FMC子卡,符合VITA57.1规范,可以作为一个理想的IO模块耦合至FPGA前端,8通道AD通过高带宽的FMC连接器(HPC)连接至FPGA从而大大降低了系统信号延迟。       该板卡支持板上可编程采样时钟和外部参考时钟以及......
  • 20240904_121403 mysql 数据库的备份与恢复 命令篇
    对数据库进行备份操作通过cmd打开命令提示符关注当前的路径通过命令来实现备份备份my_school的库到bf2.sql备份的结果在当前的路径下C:\Users\Administrator会存在bf2.sql文件恢复备份提前建库进入mysql创建要恢复的库my_schoolcmd命令导入sql内容当前路径要......