前置知识点 实例化
类是模板图纸 不占用内存 无法直接使用
实例化就是使用new关键字 根据类创建实际对象 分配内存空间
实例化标准格式 类名 对象名 = new 类名()
只有实例化对象后 才能调用普通成员方法
静态方法无需实例化 直接通过类名调用
 
🔔构造方法基础
构造方法专门用来创建对象 初始化成员变量
构造方法固定特征
方法名必须和类名完全相同
没有返回值类型 禁止书写void
创建对象时由new自动调用 不能手动调用
类中没有编写任何构造方法 系统自动提供默认无参构造
类中只要定义一个构造方法 系统直接收回默认无参构造 必须手动编写
 
🎀构造方法重载
同一个类中 多个构造方法名称相同 参数列表不同 即为构造方法重载
判定依据只有三项 参数个数 参数类型 参数顺序
优势 灵活初始化对象属性 满足不同赋值需求
完整示例代码
 
java   

class Student{
    String name;
    int age;
    public Student(){
        System.out.println("无参构造执行");
    }
    public Student(String n){
        name = n;
    }
    public Student(String n,int a){
        name = n;
        age = a;
    }
}
public class Test{
    public static void main(String[] args) {
        Student s1 = new Student();
        Student s2 = new Student("小明");
        Student s3 = new Student("小红",19);
    }
}


 
 
💡this关键字用法补充
this指代当前实例对象
第一种用法 this.变量名 区分成员变量和局部变量重名
第二种用法 this() 调用本类其他重载构造方法
强制规则 this()只能写在构造方法第一行 一个构造方法仅能调用一次
示例代码
 
java   

public Student(String name){
    this();
    this.name = name;
}
 


 
🚫构造方法使用限制
不能使用static final abstract关键字修饰构造方法
构造方法可以使用private私有化修饰
私有构造方法外部无法实例化 多用于单例模式
 
🌟方法重载核心定义
同一个类当中 多个方法名称一致 参数列表不相同 叫做方法重载
通俗口诀 同名不同参
 
✅合法重载三种形式及代码
1参数个数不同
 
java   

public class OverLoad1{
    public void sum(int a){}
    public void sum(int a,int b){}
}


 
 
2参数类型不同
 
java   

public class OverLoad2{
    public void sum(int a,int b){}
    public void sum(double a,double b){}
}


 
 
3参数顺序不同
 
java   

public class OverLoad3{
    public void sum(int a,double b){}
    public void sum(double a,int b){}
}


 
 
❌绝对不构成重载全部情况
1返回值类型不同 参数列表一致 不构成重载
2访问修饰符不同 不构成重载
3参数名称不同 数据内容一致 不构成重载
4抛出异常不同 不构成重载
错误示例代码
 
java   

public class ErrorOverLoad{
    public int add(int a,int b){
        return a+b;
    }
    public double add(int a,int b){
        return a+b;
    }
    public void test(int x){}
    public void test(int y){}
}


 
 
⚠️方法重载完整注意事项
1判定重载只看方法名和参数列表 其余条件全部忽略
2返回值无法作为重载判断条件 编写直接编译报错
3参数名字修改不改变参数结构 不属于重载
4权限修饰符不会影响重载判定规则
5方法抛出异常种类 与重载没有任何关系
6调用重载方法遵循自动类型转换规则
7数据转换优先级 byte short char自动转int 依次向上转为long float double
8精准参数匹配优先级大于类型自动转换
9可变参数重载 固定参数方法优先执行
10构造方法重载规则和普通方法完全统一
11定义构造重载后 默认无参构造自动失效
12this()调用构造方法必须放置代码第一行
13静态方法支持重载 规则和实例方法一致
14重载仅存在同类或子类当中 跨类无法构成
15禁止编写模糊重载方法 会出现编译冲突
16实例重载方法必须实例化调用 静态重载方法直接类名调用
17方法重载属于编译期多态 编译阶段确定执行方法
 
🔍自动类型转换重载案例
 
java   

public class TypeDemo{
    public void show(int num){
        System.out.println("匹配整数类型");
    }
    public void show(double num){
        System.out.println("匹配浮点类型");
    }
    public static void main(String[] args) {
        TypeDemo t = new TypeDemo();
        t.show(10);
        t.show(3.14);
        t.show('A');
    }
}


 
 
🧷可变参数重载知识点
可变参数语法 数据类型...参数名
可变参数底层本质为数组
固定参数方法优先级高于可变参数方法
示例代码
 
java   

public class VarDemo{
    public void get(int a){
        System.out.println("单个参数");
    }
    public void get(int...arr){
        System.out.println("可变参数");
    }
    public static void main(String[] args) {
        VarDemo v = new VarDemo();
        v.get(10);
        v.get(1,2,3,4);
    }
}


 
 
📌静态方法重载
静态方法可以实现重载 调用方式直接使用类名调用
示例代码
 
java   

public class StaticOverLoad{
    public static void print(int a){}
    public static void print(String a){}
    public static void main(String[] args) {
        StaticOverLoad.print(100);
        StaticOverLoad.print("Java");
    }
}


 
 
🎐匿名对象拓展知识点
匿名对象没有变量名称 格式 new 类名()
特点 仅能使用一次 执行完毕自动回收内存
简化代码写法 适合单次调用方法
常规写法
Person p = new Person();
p.eat();
匿名对象写法
new Person().eat();
 
⚖️重载与重写完整区别对比
方法重载
存在位置 同一个类中
方法名称 必须相同
参数列表 必须不同
返回值 无要求
访问权限 无要求
绑定时间 编译期绑定
多态类型 编译时多态
 
方法重写
存在位置 子类与父类之间
方法名称 必须相同
参数列表 必须完全一致
返回值 必须相同
访问权限 子类权限不能低于父类
绑定时间 运行期绑定
多态类型 运行时多态
 
💼方法重载全部实际应用案例
1系统打印方法System.out.println 适配所有数据类型打印
2Math工具类 max abs方法 适配整数小数运算
3Arrays数组排序方法 支持各类数组排序
4自定义计算器 多形式数值求和计算
5图形工具类 统一方法名计算不同图形面积
6登录功能 账号密码 手机号 邮箱多种登录方式
7商品实体类 多构造方法赋值 电商项目常用
8时间工具类 多种格式日期转换
9学生信息系统 多方式录入学生资料
10后台数据统计 多参数数据处理
 
📋高频考试选择题
1类中编写有参构造方法 正确答案 系统不再提供默认无参构造
2能够构成方法重载条件 参数个数不同方法名相同
3this()调用构造方法规则 必须写在构造方法第一行
4判断重载依据 方法名相同参数列表不同
 
🚨高频易错考点汇总
1只编写有参构造 直接无参创建对象 编译报错
2考试高频错题 将返回值不同判定为重载
3变量重名不使用this 默认优先调用局部变量
4重载编译时期确定方法 重写运行时期确定方法
5可变参数永远后置执行 固定参数优先匹配
 
📌优化补充官方校验知识点
1参数类型自动转换完整顺序
byte short char → int → long → float → double
2重载方法调用完整优先级
精准参数匹配>自动类型转换>可变参数匹配
3编译报错核心提示
方法名参数列表一致 仅返回值不同 编译器直接提示方法重复定义
 
🎊综合编程练习题
题目 设计手机类 完成构造方法重载
属性包含品牌 价格
无参构造默认赋值华为1999
单参构造赋值品牌
双参构造全部属性赋值
编写方法打印手机信息
完整代码
 
java   

class Phone{
    String brand;
    double price;
    public Phone(){
        brand = "华为";
        price = 1999;
    }
    public Phone(String b){
        brand = b;
    }
    public Phone(String b,double p){
        brand = b;
        price = p;
    }
    public void show(){
        System.out.println("品牌"+brand+"价格"+price);
    }
}
public class PhoneTest{
    public static void main(String[] args) {
        Phone p1 = new Phone();
        p1.show();
        Phone p2 = new Phone("苹果");
        p2.show();
        Phone p3 = new Phone("小米",2499);
        p3.show();
    }
}


 
 
🏆全篇核心总结
1实例化通过new创建对象 开辟内存空间
2构造方法负责对象初始化 有无自定义构造影响默认构造
3构造方法和普通方法重载规则统一
4重载只判定方法名与参数列表 其余条件全部无效
5调用遵循精准匹配优先 自动类型转换为辅
6可变参数静态方法匿名对象均为重载拓展知识点
7重载多用于企业项目工具类实体类业务功能开发
8区分重载和重写是考试必考核心内容

更多推荐