首页 > 编程语言 >java:形参和返回值

java:形参和返回值

时间:2024-03-18 11:29:55浏览次数:26  
标签:java 内部 形参 成员 接口 返回值 抽象类 方法

一、抽象类名作为形参和返回值

  • 方法形参是抽象类名,其实需要的是该抽象类的子类对象
  • 方法的返回值是抽象类名,其实返回的是该抽象类的子类对象

二、接口名称作为形参和返回值

  • 方法的形参是接口名,其实需要的是该接口的实现类对象
  • 方法返回值是接口名,其实返回的是该接口的实现类对象

三、内部类

1.内部类概述

内部类:就是在一个类中定义一个类。举例:在一个类A的内部定义一个类B,类B就被称为内部类。在现实中也有这样的例子,就比如说一台电脑,他有cpu那么cpu就相当于是内部类,而整个电脑就属于外部类。

2.内部类的访问特点

  • 内部类可以直接访问外部类的成员,包括私有
  • 外部类要访问内部类的成员,必须要创建对象

3.成员内部类

按照内部类在类中定义的位置不同,可分为如下两种形式

  • 在类的成员位置:成员内部类
  • 在类的局部位置:局部内部类

成员内部类,外界如何创建对象使用呢?

  • 格式:外部类名.内部类名 = 外部类对象.内部类对象;
  • 范例:Outer.Inner oi= new Outer().newInner();
  • 总结:当我们新建内部类的时候一般不用上面的方式,我们新建一个内部类一般不希望被外部访问到。因此我们一般会使用private进行修饰,那么private修饰的内部类我们该如何使用呢?那么就需要在新建内部类的类里新建一个成员方法,在成员方法中初始化内部类并调用内部类的方法。然后再外部测试类中实例化刚刚的外部类,调用刚刚的成员方法就可以实现内部类中的方法了。这样做的有点和明显,既然是内部类就不希望被外界访问到,更加安全。

4.局部内部类

局部内部类在方法中定义的类,所以外界无法直接使用,需要在方法内部创建对象并使用该类可以直接访问外部类的成员,也可以访问方法内的局部变量。

5.匿名内部类

  • 前提:存在一个类或者接口,这里的类可以是具体类也可以是抽象类。
  • 格式:
    • new 类名或者接口名(){
    • 重写方法
    • }
  • 范例:
    • new inter (){
    •                  public void show(){}
    •       }
  • 总结:是一个继承了该类或者实现了该接口的子类匿名对象。

标签:java,内部,形参,成员,接口,返回值,抽象类,方法
From: https://blog.csdn.net/Rssqzqyp/article/details/136730690

相关文章

  • java jar打包加密操作
    配置XJar加密依赖在pom.xml文件配置XJar加密依赖点击查看代码<!--反编译依赖类--><pluginRepositories><pluginRepository><id>jitpack.io</id><url>https://jitpack.io</url></pluginRepository></pluginRepo......
  • 基于Java的厦门旅游电子商务预订系统(Vue.js+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1景点类型模块2.2景点档案模块2.3酒店管理模块2.4美食管理模块三、系统设计3.1用例设计3.2数据库设计3.2.1学生表3.2.2学生表3.2.3学生表3.2.4学生表四、系统展示五、核心代码5.1新增景点类型5.2查......
  • Java学习系列(三):数组
    一、数组的基本概念及作用数组:是一组相同数据类型元素的集合,是一个容器①数组可以存储基本数据类型,也可以存储引用数据类型②数组创建时必须指定长度,且长度不可变③数组中每个元素空间是连续的声明数组格式:数据类型[]数组名字例如:int[]a;数据类型数组的名字[]......
  • 《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(
    1.简介 在实际工作中,我们需要对处理的元素进行高亮显示,或者有时候为了看清楚做跟踪鼠标点击了哪些元素需要标记出来。今天宏哥就在这里把这种测试场景讲解和分享一下。2.用法创建一个执行JS的对象,也就是JavascriptExecutor对象,这个对象是由driver进行强制类型转......
  • Java
    一.基本开发步骤编写代码,形成filename.java源代码文件文件名称继续为java为结尾文件名称必须与类名称一致使用javac编译,形成filename.class字节码文件cmd:javacfilename.java使用java运行cmd:javafilename(绝对绝对不要class!!!)`JDK11以上才能直接运行......
  • java项目打包(maven+原生)
    一、maven打包1.1普通jarjava-jarmaven项目打包提示.jar中没有主清单属性<build><finalName>${project.artifactId}</finalName><!--修改编译出来的jar包名,仅为{artifactId}.jar--><plugins><plugin><gr......
  • java基础
    快捷键:Ctrl+Shift+ESC:任务管理器卸载JDK1.删除java的安装目录2.删除JAVA_HOME3.删除path下关于java的目录4.java-version安装JDK1.baidu搜索JDK8,找到下载地址2.同意协议3.下载电脑对应的版本4.双击安装5.记住安装的路径6.配置环境变量1.添加JAVA_HOME环境变......
  • Java基础知识总结(3)
    冒泡排序冒泡排序是比较基础的排序算法之一,其思想是相邻的元素两两比较,较大的数下沉,较小的数冒起来,这样一趟比较下来,最大(小)值就会排列在一端。整个过程如同气泡冒起,因此被称作冒泡排序。importjava.util.Scanner;/* 外层循环控制轮数,内层循环控制每一轮交换的次数......
  • 「深入理解Java I/O:FilterInputStream」
      咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java之IO流啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~前言  JavaI/O是Java编程语言的核心功能之一,提供了丰富的输入输出操作......
  • 解决: java.util.concurrent.CancellationException详解
    解决:java.util.concurrent.CancellationException详解......