Lazy loaded image
学习笔记
Java
字数 1420阅读时长 4 分钟
2026-4-22
2026-4-22
type
Post
status
Published
date
Apr 22, 2026
slug
java
summary
Java学习笔记
tags
Java
编程
category
学习笔记
icon
password
By BarryZed

杂项

导入类与导入包
导入类:import java.util.Scanner;
导入包:import java.util.*;

成员方法

修饰符
类内
同包
子类
其他包
private
default
protected
public

static

static 的属于对象
static 的属于类
 

重写、重载与隐藏

重写(Override)

  • 方法名相同
  • 参数列表相同
  • 返回类型相同(或兼容)
  • 权限不能变小
    • protected → public
    • protected → private
  • 不能重写final 方法
  • 调用时看实际对象类型(运行时决定)
  • 不能重写static 方法(是隐藏)

隐藏(Hiding)

处理static 方法同名冲突,子类与父类有相同名字的static 方法时触发
static 没有多态
只看“引用类型”(编译时决定)

重载(Overload)

同一个类中,方法名相同,但参数列表不同
编译时决定具体调用那个
实现接口:class Dog implements Animal

多态(Polymorphism)

同一个调用形式,在不同的情况下行为不同
父类引用指向子类对象,调用方法时表现出不同子类行为

类的继承

此时B 是子类(subclass),A 是父类(superclass)
相当于B是完全升级的A,A有的、能做的,B都可以用(也可以override),而且B有其他更新的属性和方法
父类中private 的子类能继承,但是看不见也用不了
构造器不参与继承体系(构造器不是方法)
  • 单继承
    • Java一个类只能继承一个父类
      只能有一个爹,但是可以有多个儿子,也就可以有孙子/多个孙子……
  • 方法重写(Override)
    • 子类可以改父类的方法
  • 子类也是一种父类
    • (B也是一种A)
Java语言所有类的父类(大爹):Object

this, super, final

this

this.name :指发起该函数的对象的成员变量name
this()
在一个构造方法里,去调用“同一个类里的另一个构造方法”(a.k.a. 构造方法复用)
必须在第一行且只能有一次
不能循环

super

它专门用来访问直接父类(superclass)里的内容
不存在xxx.super.super.fun()
super.属性名 :访问父类属性
super.fun() :调用父类方法
super()
调用父类构造方法
必须是第一行
只能在构造方法里用

final

不可修改、最终状态
final变量 = 常量,不可修改
final 引用类型:修饰引用本身(那座桥) → 固定对象是谁,无法更换;但对象里面的东西仍然可以正常修改等
final 方法:不能被重写,但是能被重载
操作
是否允许
本质
重写
改“原方法内容”
重载
新增“同名不同参数方法”
final 类:不能被继承(不能当爹)

抽象类(Abstract Class)

抽象类 = 不能直接造对象的类 + 可以有完整方法 + 也可以有未完成方法
  • 不能实例化
可以有 抽象方法:abstract void sound();
可以有 普通方法
在子类继承抽象类后:
必须实现所有抽象方法 或 成为抽象类
继承抽象类:class Dog extends Animal
“这些类有共同本质,但具体行为不同”

接口(Interface)

  • 方法默认是 public abstract (抽象方法)
    • void sound(); 自动等价于public abstract void sound();
      之后子类实现时必须public void :接口本质是“公共契约”,实现必须保持同样可见性
      jdk8+可以有普通方法,但是必须手动写成 default 或static 方法
  • 变量默认是 public static final(常量)
    • int x = 10; 自动等价于public static final int x = 10;
      即,接口里不能有非 final 变量
  • 接口可以继承,也支持多继承
    • 一个类可以实现多个接口
      • 接口不能被实例化,但是可以创建“接口类型的数组”

        集合

        Set, List, Queue; Map

        forEach()方法

        Stream API

        中间操作(Intermediate Operations)

        返回Stream
        方法
        作用
        filter
        筛选
        map
        转换
        sorted
        排序
        distinct
        去重

        终止操作(Terminal Operation)

        方法
        作用
        forEach
        遍历
        collect
        收集成 List
        count
        计数
        reduce
        汇总

        执行顺序

        每一个元素走完整个处理链/在某层被丢弃后,下一个元素才开始。
        上一篇
        “三下乡”
        下一篇
        机器学习

        评论
        Loading...