3.1 Java 构造方法、重载方法

一、构造方法

1、什么是构造方法?

public class Car{

​ //成员变量

​ //成员方法

​ new Car(); //在内存中创建一个对象

​ Car(){}; //构造方法,每一个类中默认有一个,为对象初始化

}

2、构造方法作用?

作用:在构造方法中为创建的对象初始化赋值

//用来初始化新创建的对象

3、构造方法特点?

  • 构造方法名与类名相同,无返回值,无void修饰。

  • 每个类中至少有一个构造方法,也可以定义多个,每创建一个对象,至少调用一个构造方法。

  • 如果类中无构造方法,默认定义一个无参的,一旦定义一个构造方法,默认的构造方法就失效了。

    • 有参构造方法

    为新建对象用实参初始化赋值

    • 无参构造方法

    为新建对象用默认值初始化赋值
    请添加图片描述

二、方法重载

1、什么是方法重载?

方法重载:同一个类中具有相同名字,但参数类型不同的多个方法。

参数不同:

  • 数量不同
  • 类型不同 Java是强类型语言
  • 顺序不同

调用时会通过不同的参数表选择对应的方法。

注意:方法重载跟方法的返回值无关。

2、方法重载用在哪?

构造方法可以重载,就是多个构造方法名字一样,但是参数类型不同而已,类似,成员方法也可以重载。

构造方法 重载

成员方法 重载

3、方法重载使用场景实例

比如:

max(int x ,int y); //可以比较两个int数值

max(int x, int y ,int z); //可以比较三个int数值

这就要使用方法重载,来丰富max方法功能。

类似,参数类型、顺序不同也一样。

### Java 中封装、继承多态的概念及用法 #### 封装 (Encapsulation) 封装是一种将数据(属性)操作数据的方法绑定在一起的技术,同时隐藏对象内部实现细节的过程。通过设置访问修饰符来控制外部对类成员的访问权限。 - **私有化字段**:通常将类中的字段声明为 `private`,防止外界直接修改这些字段。 - **提供公共方法**:通过 `public` 方法(getter setter)对外部提供有限的操作方式。 以下是封装的一个简单例子: ```java // 定义一个Person类并封装其nameage字段 class Person { private String name; private int age; // 提供公有的setter方法用于赋值 public void setName(String name) { this.name = name; } public void setAge(int age) { if(age >= 0 && age <= 120){ this.age = age; } } // 提供公有的getter方法用于获取值 public String getName() { return name; } public int getAge() { return age; } } ``` 上述代码展示了如何通过 getter setter 来保护类的数据[^1]。 --- #### 继承 (Inheritance) 继承允许创建一个新的类(子类),该新类可以重用现有类(父类)的功能,并可扩展或覆盖其中的部分功能。Java 的继承机制支持单继承,即一个类只能有一个直接父类。 - **关键字 `extends`**:用来表示继承关系。 - **方法重写**:子类可以通过重新定义父类中的方法来改变行为。 - **构造器调用**:如果父类没有无参构造函数,则子类必须显式调用父类带参数的构造函数。 下面是一个关于继承的例子: ```java // 父类Animal class Animal { protected String name; public Animal(String name) { this.name = name; } public void move(){ System.out.println(this.name + " moves"); } } // 子类Bird继承自Animal class Bird extends Animal{ public Bird(String name){ super(name); } @Override public void move(){ System.out.println(this.name + " flies"); } } ``` 在这个例子中,`Bird` 是 `Animal` 的子类,它重写了 `move()` 方法以适应鸟类的行为特点[^2]。 --- #### 多态 (Polymorphism) 多态是指同一个接口或者基类的不同实现形式,在运行时决定具体执行哪个版本的方法Java 支持两种主要类型的多态:编译时多态(方法重载运行时多态(动态绑定/方法重写)。 ##### 运行时多态示例 当使用父类引用指向子类实例时,实际调用的是子类中被重写的那个方法。 ```java // 测试多态 public class TestPoly { public static void main(String[] args) { Animal animal = new Bird("sparrow"); animal.move(); // 输出 sparrow flies } } ``` 这里虽然变量类型是 `Animal`,但由于实际上存储的对象是 `Bird` 实例,因此最终调用了 `Bird` 类中的 `move()` 方法[^3]。 --- #### 总结 - **封装**强调安全性与模块化的编程理念; - **继承**提供了代码复用的能力; - **多态**增强了程序灵活性扩展性。 这三种特性共同构成了面向对象的核心支柱,使开发者能够构建更加健壮、灵活的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码元宋大米

感谢小主大赏,留言可进互助群~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值