• 视频+资料(工程源码、笔记)【链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs】
  • Java基础--学习笔记(零起点打开java世界的大门)--博客汇总表

目   录

01_类名作为形参和返回值

1.1、类名作为形参和返回值

02_抽象类名作为形参和返回值

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

03_接口名作为形参和返回值

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

04_内部类

1.1、内部类概述

05_成员内部类

1.2、成员内部类

06_局部内部类

1.3、局部内部类

07_匿名内部类

1.4、匿名内部类

08_匿名内部类在开发中的使用

1.5、匿名内部类在开发中的使用

09_Math

1.1、Math类概述

1.2、Math类的常用方法

10_System

2.1、System概述

2.2、System类的常用方法

11_Object类的toString()方法

3.1、Object类的概述

12_Object类的equals()方法

3.2、Object类的常用方法

13_冒泡排序原理

4.1、冒泡排序

14_冒泡排序代码实现

15_Arrays

4.2、Arrays类的概述和常用方法


01_类名作为形参和返回值

1.1、类名作为形参和返回值

1、类名作为方法的形参

  • 方法的形参是类名,其实需要的是该类的对象。
  • 实际传递的是该对象的【地址值】

2、类名作为方法的返回值

  • 方法的返回值是类名,其实返回的是该类的对象。
  • 实际传递的,也是该对象的【地址值】

02_抽象类名作为形参和返回值

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

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

03_接口名作为形参和返回值

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

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

04_内部类

1.1、内部类概述

05_成员内部类

1.2、成员内部类

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

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

成员内部类的定义位置

  • 在类中方法,跟成员变量是一个位置。

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

  • 格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象;
  • 举例:Outer.Inner oi = new Outer().new Inner();

成员内部类的推荐使用方案

  • 将一个类,设计为内部类的目的,大多数都是不想让外界去访问,所以内部类的定义应该私有化,私有化之后,再提供一个可以让外界调用的方法,方法内部创建内部类对象并调用。

使用 成员内部类,就是为了 成员内部类中的内容隐藏起来,并不想让外界直接看到(不能直接访问)。

∴ 内部类的修饰符,一般用private,而不是public。【“ Outer.Inner oi = new Outer().new Inner(); ” 失效!!!】

06_局部内部类

1.3、局部内部类

局部内部类 定义位置

  • 局部内部类是在方法中定义的类。

局部内部类 调用方式

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

07_匿名内部类

1.4、匿名内部类

重写方法:继承类或实现接口。

new xxx:说明是一个对象,但是对象没有名字。

匿名内部类,本质是一个对象,继承类或实现接口。

多次调用匿名内部类的方法:

匿名内部类是一个对象,对象有返回值类型。此匿名内部类实现了Inter接口,并重写了接口的show()方法,因此 匿名内部类{}整体可以看成Inter的一个实现类对象,既然是实现类对象,所以应该可以按照多态的形式 赋值给Inter接口。

08_匿名内部类在开发中的使用

1.5、匿名内部类在开发中的使用

多种动物,每次都要创建一个类,太麻烦了,∴ 采用 匿名内部类。

匿名内部类在开发中的使用:当发现某个方法需要 接口或抽象类的子类对象,可以传递一个匿名内部类过去,来简化传统的代码。

09_Math

1.1、Math类概述

Math在java.lang包下,不用导包就可以直接使用。

Math没有构造方法,但方法用static修饰,可以直接通过类名调用方法。

1.2、Math类的常用方法

10_System

2.1、System概述

System包含几个有用的类字段和方法,它不能被实例化(不能创建对象)。

2.2、System类的常用方法

11_Object类的toString()方法

3.1、Object类的概述

Object类概述

  • Object是类层次结构的根,每个类都可以将Object 作为超类。没有继承任何类,Object是任何类的祖宗类。
  • 所有对象(包括数组)都实现了这个类的方法。

  • 所有类都直接或者间接的继承自该类,换句话说,该类所具备的方法,所有类都会有一份。

Object构造方法

  • public Object()

查看方法源码的方式

  1. 双击选中方法,右键 -> Go To -> Declaration
  2. 双击选中方法,按下Ctrl + B

重写toString方法的方式

  1. Alt + Insert 选择toString
  2. 在类的空白区域,右键 -> Generate -> 选择toString

toString方法的作用:

  • 以良好的格式,更方便的展示对象中的属性值。

回想面向对象中,为什么说子类的构造方法默认访问的是父类的无参构造方法(  super();  )?

  • 因为它们的顶级父类(Object)只有无参构造方法。

查看方法源码的方式

  1. 双击选中方法,右键 -> Go To -> Declaration
  2. 双击选中方法,按下Ctrl + B

建议所有子类覆盖(重写)此方法:toString()

怎么重写呢?自动生成即可。

重写toString方法的方式

  1. Alt + Insert 选择toString
  2. 在类的空白区域,右键 -> Generate -> 选择toString

12_Object类的equals()方法

3.2、Object类的常用方法

equals方法的作用

  • 用于对象之间的比较,返回true和false的结果。
  • 举例:s1.equals(s2); // s1和s2是两个对象

重写equals方法的场景

  • 不希望比较对象的地址值,想要结合对象属性进行比较的时候。

重写equals方法的方式

  1. Alt + Insert 选择 equals() and hashCode(),IntelliJ Default,一路next,finish即可
  2. 在类的空白区域,右键 -> Generate -> 选择equals() and hashCode(),后面的同上。

重写equals()方法

按“Alt+Insert”:

13_冒泡排序原理

4.1、冒泡排序

排序:将一组数据按照固定的规则进行排序。

冒泡排序概述

一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,

依次对所有的数据进行操作,直至所有数据按要求完成排序。

如果有n个数据进行排序,总共需要比较n-1次。

每一次比较完毕,下一次的比较就会少一个数据参与。

14_冒泡排序代码实现

package com.itheima_01;/*冒泡排序:一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有的数据进行操作,直至所有数据按要求完成排序*/
public class ArrayDemo {public static void main(String[] args) {//定义一个数组int[] arr = {24, 69, 80, 57, 13};System.out.println("排序前:" + arrayToString(arr));//第一次比较for(int i=0; i<arr.length-1-0; i++) {//ArrayIndexOutOfBoundsExceptionif(arr[i] > arr[i+1]) {int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}System.out.println("第一次比较后:" + arrayToString(arr));//第二次比较for(int i=0; i<arr.length-1-1; i++) {//ArrayIndexOutOfBoundsExceptionif(arr[i] > arr[i+1]) {int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}System.out.println("第二次比较后:" + arrayToString(arr));//第三次比较for(int i=0; i<arr.length-1-2; i++) {//ArrayIndexOutOfBoundsExceptionif(arr[i] > arr[i+1]) {int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}System.out.println("第三次比较后:" + arrayToString(arr));//第四次比较for(int i=0; i<arr.length-1-3; i++) {//ArrayIndexOutOfBoundsExceptionif(arr[i] > arr[i+1]) {int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}System.out.println("第四次比较后:" + arrayToString(arr));for(int x=0; x<arr.length-1; x++) {for(int i=0; i<arr.length-1-x; i++) {if(arr[i] > arr[i+1]) {int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}}System.out.println("排序后:" + arrayToString(arr));}//把数组中的元素按照指定的规则组成一个字符串:[元素1, 元素2, ...]public static String arrayToString(int[] arr) {StringBuilder sb = new StringBuilder();sb.append("[");for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {sb.append(arr[i]);} else {sb.append(arr[i]).append(", ");}}sb.append("]");String s = sb.toString();return s;}
}

15_Arrays

4.2、Arrays类的概述和常用方法

private修饰的无参构造:外界无法通过构造方法创建对象。强制要求:通过类名来访问成员方法。

private Arrays {} :如果一个类没有无参构造方法,系统将会自动提供一个无参构造方法。Arrays的方法,用static修饰,强制要求用类名访问。

在帮助文档中,没有看到构造方法,不代表这个类没有构造方法,因为系统会给构造方法。--> 看源码(构造方法)

Java12-day03【​​​​​​​(类名、抽象类名、接口名)作为形参和返回值、内部类、常用API(Math、System、toString()、Arrays)、冒泡】相关推荐

  1. [Java基础]抽象类和接口名作为形参和返回值

  2. 测试私有方法_Java基础之抽象类、接口作为方法参数和返回值

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

  3. 重学Java(035)——Java基础知识(类作为成员变量、接口作为成员变量、接口作为方法参数和返回值类型)

    学习内容:三种引用类型用法 一.类作为成员变量 二.接口作为成员变量 三.接口作为方法参数和返回值类型 实际的开发中,引用类型的使用非常重要,也是非常普遍的.我们可以在理解基本类型的使用方式基础上,进 ...

  4. C语言基础入门48篇_20_函数入门:为什么使用函数?(函数使得程序模块化 使用函数封装细节,使得程序员只要面向函数的接口编程(参数与返回值),而不用关心函数内部细节)

    菜鸟和高手都会基本,那菜鸟为什么是菜鸟,高手为什么是高手呢?很大的区别在于,高手写的程序[结构性]更好,更容易维护.而函数就是C语言结构化的一种手段. 函数可以将大的计算任务划分为多个较小的任务(解耦 ...

  5. 前端获取接口状态码400的返回值

    前端获取接口状态码400的返回值 .catch((err) => {console.log(err.message);console.log(err.response.data);console ...

  6. 类名作为方法和形参的返回值

    class Teacher{public void show(Student s){//类名作为形参,将show方法指向Students类 s.study();}Student getStudent( ...

  7. 包 权限修饰符 final 常量 枚举 抽象类 接口 多态 内部类 常用API 正则表达式 Lambda

    包 什么是包? 包是用来分门别类的管理各种不同类的,类似于文件夹.建包利于程序的管理和维护. 建包的语法格式:package 公司域名倒写.技术名称.报名建议全部英文小写,且具备意义. package ...

  8. App前端及后端接口,模拟数据及返回值

    App前端及后端接口,模拟数据 :接口文档 目录 1. 全局状态码 6 2. 前台 7 2.1. 首页 7 2.1.1. 商品分类列表接口 7 2.1.2. 展示轮播图接口 9 2.1.3. 展示广告 ...

  9. JAVA学习笔记第八天——接口作为方法参数和返回值、多态、内部类

    一.回顾: 权限修饰符: public -> protected -> (default) ->private 重写: 1.方法名和参数列表一致 2.子类中重写的方法, 返回值类型[ ...

最新文章

  1. html table增加删除编辑,一个可以增加和删除行的table并可编辑表格中内容
  2. 远程连接server问题
  3. 高通量数据中批次效应的鉴定和处理(五)- 预测并校正可能存在的混杂因素...
  4. C - How Many Tables - HDU-1213
  5. 【译文】用Spring Cloud和Docker搭建微服务平台
  6. Julia: Flux.jl尝试
  7. 软件著作权算法软件设计说明书_软件著作权说明书模板
  8. java bartender_BarTender Web Print Server可用的打印方法
  9. 一起来看流星雨在线观看/在线播放/全集下载/在线直播全集
  10. 三维模型免费查看器(AnyCAD Viewer)
  11. ISA防火墙策略配置
  12. 机器学习 卷积神经网络 Convolutional Neural Network(CNN)
  13. hexo网页相册页面的制作
  14. 这些大学奖学金覆盖率100%!
  15. 产品开发中如何衡量产品价值,来做优先级排序?
  16. 《程序员养成记》第1集 做程序员需要天赋吗?
  17. 相似对角化的意义(转载)
  18. C语言 —— for循环(一)
  19. TvInput Cec key事件传递流程
  20. 和AI一起玩儿剧本杀:居然比我还入戏

热门文章

  1. 集成android studio,Android Studio集成
  2. java语言编程基础_Java编程基础02——Java语言基础
  3. java动态生成柱状图3D_在android上动态实现ichartjs的3D柱形图
  4. 【小白学习PyTorch教程】十五、BERT:通过PyTorch来创建一个文本分类的Bert模型
  5. 七十八、 回溯法解决八皇后问题
  6. 八十一、使用Springboot实现发邮件的需求
  7. keras从入门到放弃(十五)图片数据增强
  8. centos mysql下载64位_CentOS7 64位安装mysql教程
  9. ACL 2019 开源论文 | 使用跨领域语言建模的跨领域命名实体识别
  10. 2018明星学术公众号TOP 10重磅发布,PaperWeekly再度入选