首页 > 编程语言 >java进阶面向对象总结二

java进阶面向对象总结二

时间:2024-08-08 15:23:52浏览次数:19  
标签:java 进阶 自定义 demo2 面向对象 泛型 new public 内部

1.接口

继上次总结,接口是由常量和抽象方法组成,但为了增强接口功能,在jdk1.8之后可以定义含方法体的默认方法,静态方法(版本1.9之后),私有方法,他们分别用defult,static,private修饰

2.内部类

成员内部类:就是类里面的一个普成员
外部类名.内部类名 对象名=new 外部类().new 内部类();
outer.Inner in=new outer().new Inner();
静态内部类
外部类名.内部类名 对象名=new 外部类.内部类();
outer.Inner in=new outer.Inner();
局部内部类
匿名内部类
是一种特殊的局部内部类。
示例:
Anmial dog = new Anmial(){
            @Override
            public void cry() {
                System.out.println("小狗汪汪汪的叫");
            }
        };

3.枚举

是一种用enum定义的特殊的类,他的第一行必须是枚举对象。
示例代码:
package com.itheima.demo2;
//对传递的参数进行绝对限制
public enum demo2 {
   BOY,GIRL
}
​
package com.itheima.demo2;
​
public class demo1 {
    public static void main(String[] args) {
        math(demo2.BOY);
    }
    public static void math(demo2 a){
        switch (a){
            case BOY:
                System.out.println("武侠小说");
                break;
            case GIRL:
                System.out.println("言情小说");
                break;
        }
    }
}

4.泛型

自定义泛型类
格式:public class xxx <类型变量> {}
自定义泛型接口
格式:public interface xxx <类型变量> {}
自定义泛型方法:自定义方法的时候类型变量必须定义在,修饰符与返回值之间。
格式:public<类型变量>void xxx(){}

5.通配符

1.<?>代表可以接收任意类型变量
2.上限:?extends 使用泛型时,允许接受它及他的子孙类
3.下限:?super 使用泛型时,允许接受它及他的父类。

6.有关于泛型的面试题

1.泛型擦除机制:泛型只存在在编码阶段,等到编译为class文件之后,泛型会被擦除为Object类型。这样做的主要目的是为了节约内存。
2.不能接收基本数据类型:所有的java类都继承于Object这个类,基本类型不属于java类所以他也就跟Object没有任何关系。

标签:java,进阶,自定义,demo2,面向对象,泛型,new,public,内部
From: https://blog.csdn.net/m0_75270036/article/details/141026602

相关文章

  • 【原创】java+swing+mysql教材管理系统设计与实现
    个人主页:程序员杨工个人简介:从事软件开发多年,前后端均有涉猎,具有丰富的开发经验博客内容:全栈开发,分享Java、Python、Php、小程序、前后端、数据库经验和实战开发背景:随着高校教育的发展,学校规模越来越大,管理任务也越来越复杂。教材管理作为高校管理中的重要一环,其复杂性......
  • YOLO系列:从yolov1至yolov8的进阶之路 持续更新中
    一、基本概念1.YOLO简介YOLO(YouOnlyLookOnce):是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统。2.目标检测算法RCNN:该系列算法实现主要为两个步骤:先从图片中搜索出一些可能存在对象的候选区(SelectiveSearch),大概2000个左右;然后......
  • 【全网独家】java 九宫格拼图游戏(代码+测试部署)
    介绍九宫格拼图是一种经典的益智游戏,玩家需要将一幅图像打乱并重新排列,从而恢复原图。游戏通常以一个3x3的网格形式展现,每个方块包含图片的一部分。应用使用场景教育:帮助提高儿童的逻辑思维能力和动手能力。娱乐:提供消遣和挑战,适用于所有年龄段的玩家。认知训练......
  • java笔记7
    12.异常什么是异常异常是指程序运行过程中发生的不正常情况,它中断了正常的指令流程。Java异常类结构图Java异常层次结构基于Throwable类,主要分为两大类:Error:表示编译时和系统错误(如OutOfMemoryError),通常是不可恢复的。Exception:表示程序运行中可以捕获并处理的异常。Erro......
  • Java内存管理
    任何平台的JVM管理内存的方式是相同的JVM如何管理内存:程序运行前,JVM会向操作系统申请一块内存,然后加载运行JAVA程序,如果不够,就继续申请新内存,直到运行成功或达到内存上限(默认64M)。内存会划分为几个逻辑区域堆占内存最多存放:对象,引用类型的数据,new创建的对象,只包含对象的......
  • java之多线程篇
    一、基本概念1.什么是线程?线程就是,操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。简单理解就是:应用软件中互相独立,可以同时运行的功能2.什么是多线程?有了多线程,我们就可以让程序同时做多件事情3.多线程的作用?提高效率4.线程的应用场......
  • java之反射篇(上)——基本使用
    目录一、什么是反射二、获取class对象的3种方法三、反射获取构造方法四、反射获取成员变量五、反射获取成员方法 六、反射的作用 七、反射的两种使用方式1.Demo1保存信息2.Demo2结合配置文件获取类信息一、什么是反射反射允许对成员变量,成员方法和构造方法的信......
  • from type [java.lang.String] to type [org. apache.kafka.clients.consumer.Consume
    kafka消费消息的时候,报错Noconverterfoundcapableofconvertingfromtype[java.lang.String]totype[org.apache.kafka.clients.consumer.ConsumerRecord<??>,没有消费到数据,这种情况可能是发送方发送的数据是封装了多个ConsumerRecord<??>对象发送过来的,需要用Consume......
  • ArcGIS API for JavaScript 3.x 到 4.x 的升级手册
    众所周知,3.x版本主要是构建二维地图,且基本不会再添加新功能;而4.x版本主要是构建于三维地图,与3.x相比并不是简单的升级,基本上就是重写了。所以当我们需要把API从3.x升级到4.x时,应用程序基本上是需要重写的,这里将对API升级过程中涉及到的相关变动进行记录与描述。以下......
  • Java 中 Exception 和 Error 有什么区别?
    1.ExceptionException代表程序正常运行过程中可以预料到的意外情况,应该被开发者捕获并进行相应处理。2.ErrorError指在正常情况下不太可能出现的情况。大部分Error导致程序处于不正常、不可恢复的状态,所以不便也不需被开发者捕获,因为这个情况下你捕获了也无济于事......