Java学习之路 —— Day3(内部类、枚举、泛型、API)

文章目录

  • 1. 内部类
  • 2. 枚举
  • 3. 泛型

1. 内部类

成员内部类
就是类中的一个普通成员,类似普通的成员方法、成员变量。(套娃)

public class Outer {public class Inner {private String name;public static String school;public String getName() {return name;}public void setName(String name) {this.name = name;}}
}
public class Main {public static void main(String[] args) {Outer.Inner in = new Outer().new Inner();in.setName("jehan");Outer.Inner.school = "CQUPT";System.out.println(Outer.Inner.school + " " + in.getName());}
}

静态内部类
有static修饰的内部类,属于外部类自己持有。使用它时就像使用静态方法一样就行,只能访问外部类的静态成员,不能访问外部类的非静态成员。

匿名内部类(重点)
一种特殊的局部内部类;不需要为这个类声明名字。

  • 特点:匿名内部类本质就是一个子类,并会立即创建出一个子类对象;
  • 作用:用于更方便的创建一个子类对象;
  • 通常作为一个参数传递给函数

2. 枚举

枚举是一种特殊类。

  • 枚举类的第一行,只能写一些合法的标识符,多个名称用逗号隔开。
  • 这些名称,本质是常量,每个常量都会记住枚举类的一个对象。
  • 枚举类的构造器都是私有的,因此,枚举类对外不能创建对象。
  • 枚举类都是最终类,不可以被继承。
    在这里插入图片描述
public enum A {// 注意:枚举类的第一行必须罗列的是枚举对象的名称X, Y, Z;private String name;// 构造器都是私有的public String getName() {return name;}public void setName(String name) {this.name = name;}
}
public class Main {public static void main(String[] args) {A a1 = A.X;System.out.println(a1);}
}

3. 泛型

这一块和C++差不多,都是尖括号里面声明变量类型。

不过定义的时候比C++简单,只需要在类名后面加尖括号就行了。

需要注意的是,泛型不支持基本数据类型,只支持对象类型(引用数据类型)。我们知道,java的引用数据类型是在堆中创建的对象,引用数据类型的变量实际上是一个指向对象的指针,通过这个指针可以访问对象的属性和方法,具体的有4大类:类、接口、数组、字符串

所以int这些基本数据类型就不行,但java提供了Integer这样的引用数据类型

public class MyArrayList<类型变量E, 类型变量T> {public boolean add(E e) {return true;}
}

泛型接口

修饰符 interface 接口名<类型变量, 类型变量, ...> {}
修饰符 class 类名 implements 接口名<类型变量> {@Override...
}

泛型方法
泛型方法放泛型的位置有点不一样,是放到返回值前面。

修饰符 <类型变量> 返回值类型 方法名(形参) {
}

?在泛型中作为通配符,在使用时表示一切类型来使用
public static go(ArrayList<? extends Car> cars) {}

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

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

相关文章

hadoop 如何关闭集群 hadoop使用脚本关闭集群 hadoop(八)

1. hadoop22, hadoop23, hadoop24三台机器 2. namenode 所在hadoop22关闭 hdfs: # 找到/etc/hadoop位置 cd /opt/module/hadoop-3.3.4/etc/hadoop # 找到shell脚本&#xff0c;关闭即可sbin/stop-dfs.sh 3. 关闭yarn脚本&#xff0c;我的在hadoop23&#xff1a; # 找到/etc…

容斥dp,二项式反演

前言 由于水平有限&#xff0c;这篇文章比较难懂&#xff0c;并且也有很多不够透彻的地方&#xff0c;如果您有任何的看法&#xff0c;非常感谢您私信指导。 容斥dp 用dp的方法来描述容斥&#xff0c;大概的想法是&#xff0c;把容斥系数分到每一步里去乘。 通常当你有容斥…

HP惠普暗影精灵9P OMEN 17.3英寸游戏本17-cm2000(70W98AV)原装出厂Windows11-22H2系统镜像

链接&#xff1a;https://pan.baidu.com/s/1gJ4ZwWW2orlGYoPk37M-cg?pwd4mvv 提取码&#xff1a;4mvv 惠普暗影9Plus笔记本电脑原厂系统自带所有驱动、出厂主题壁纸、 Office办公软件、惠普电脑管家、OMEN Command Center游戏控制中心等预装程序 所需要工具&#xff1a;3…

Go 14岁了

今天我们庆祝Go开源十四周年&#xff01;Go度过了美好的一年&#xff0c;发布了两个功能齐全的版本和其他重要的里程碑。 我们在2月份发布了Go 1.20&#xff0c;在8月份发布了Go 1.21&#xff0c;更多地关注实现改进而不是新的语言更改。 在Go 1.20中&#xff0c;我们预览了配置…

深度学习 植物识别算法系统 计算机竞赛

文章目录 0 前言2 相关技术2.1 VGG-Net模型2.2 VGG-Net在植物识别的优势(1) 卷积核&#xff0c;池化核大小固定(2) 特征提取更全面(3) 网络训练误差收敛速度较快 3 VGG-Net的搭建3.1 Tornado简介(1) 优势(2) 关键代码 4 Inception V3 神经网络4.1 网络结构 5 开始训练5.1 数据集…

UE5、CesiumForUnreal实现加载GeoJson绘制墙体(Wall)功能(StaticMesh方式)

文章目录 1.实现目标2.实现过程2.1 实现原理2.2 具体代码2.3 应用测试2.3.1 流动材质2.3.2 蓝图测试3.参考资料1.实现目标 与上一篇以StaticMesh方式实现面类似,本文通过读取GeoJson数据,在UE中以StaticMeshComponent的形式绘制出墙体数据,并支持Editor和Runtime,在Editor下…

什么是消费增值!一篇文章带你看懂!

亲爱的消费者朋友们&#xff0c;大家好&#xff01;今天我将和你分享一种全新的消费理念——消费增值&#xff0c;让你的每一次消费都变得更有价值&#xff01; 在传统的消费观念中&#xff0c;我们通常只是单纯地用钱购买物品或享受服务&#xff0c;然后它们就消失了。但是现在…

苍穹外卖-day10

苍穹外卖-day10 课程内容 Spring Task订单状态定时处理WebSocket来单提醒客户催单 功能实现&#xff1a;订单状态定时处理、来单提醒和客户催单 订单状态定时处理&#xff1a; 来单提醒&#xff1a; 客户催单&#xff1a; 1. Spring Task 1.1 介绍 Spring Task 是Spring框…

js写轮播图,逐步完善

目录 1、自动轮播 2、点击更换 3、自动播放加左右箭头点击切换 4、完整版轮播图 1、自动轮播 用定时器setInterval()来写&#xff0c;可以实现自动播放 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><met…

记录第一次

1.看接口 看控制台 报错吗&#xff1f; 控制台 空指针报错 前端控制台 2.找报错 看哪里报的错误&#xff0c;控制台的错误&#xff08;空指针报错&#xff09; 错误问题&#xff1a; 3.分析业务 业务问题 一定要问&#xff0c; 4. 找到出错点

强化学习 - 策略梯度(Policy Gradient)

引言 强化学习常见的方法为基于值函数或者基于策略梯度。 值函数&#xff1a;值函数最优时得到最优策略&#xff0c;即状态s下&#xff0c;最大行为值函数maxQ(s,a)对应的动作。 但对于机器人连续动作空间&#xff0c;动作连续时&#xff0c;基于值函数&#xff0c;存在以下问…

RocketMQ(二):基础API

Spring源码系列文章 RocketMQ(一)&#xff1a;基本概念和环境搭建 RocketMQ(二)&#xff1a;基础API 目录 一、RocketMQ快速入门1、生产者发送消息2、消费者接受消息3、代理者位点和消费者位点 二、消费模型特点1、同一个消费组的不同消费者&#xff0c;订阅主题必须相同2、不…