2023.3.29 java基础 对象,类 构造方法

本文介绍了面向对象编程的基本概念,包括对象、类的定义,以及封装、继承和多态这三大特性。类是对象的蓝图,对象存储在堆中,成员变量和方法分别代表对象的属性和行为。此外,文章还讨论了构造方法、方法重载以及this关键字的使用。

面向对象

1.对象的理解,分析特征 行为   简单理解为把任务派给某个对象来处理

2.过程和对象的区别,过程更加复杂

封装,继承,多态。三大特性

类和对象

对象:堆的存储区域

类:相同特征和行为的对象共性的抽象描述

特征=成员变量,属性=成员方法

类(设计图纸) 对象:根据设计图纸  数据结构由定义他的类决定

类的定义

成员变量 变量名 = 初始值;

成员方法

创建对象 

new 类名();  实例化  new Person();堆区 存放对象的独有特征信息   匿名对象

引用  堆区中的内存地址信息

Public class Person{

//成员变量

  String name;

  Int age;

}

main方法

成员实例化 new Person();

成员方法的定义

返回值类型,方法名,方法体

形参和实参的区别  可变长参数  可变长参数为什么不用数组或者集合???

参数传递中的注意事项

1.基本数据类型作为形参传递时,数值改变不会影响实参

2.引用数据类型作为参数传递时,数值改变会影响实参(引用数据类型里存放的是地址  地址传递)

3.引用数据类型,作为方法的参数进行传递时,如果new一个对象,就会在堆中新开辟一个空间,改变参数地址,这样就不会引起实参的变化

构造方法概念:方法名与类名相同  没有返回值类型

无参构造  有参构造

编译器会自动添加一个无参空构造方法

方法重载:方法名形同,参数列表不同 (个数不同,类型不同)

this关键字

在构造方法中,出现this,代表正在构造的对象

在成员方法中,出现this,谁调用我,我就代表谁   谁调用方法,this就代表谁

实际上代表当前所在类 

避免成员变量名和形参变量名形同(开发中尽可能相同,提高代码可读性)。this.***

1.调用成员变量和成员方法

2.作为方法返回值

3.使用this()的方式调用本类中 的其他构造方法 第一行

### Java 对象构造方法及创建对象 #### 什么是是面向对象编程的核心概念之一,它是一个抽象模板,用来描述具有相似属性和行为的对象集合。通过定义,可以创建多个具体的对象实例。 #### 对象是什么? 对象的具体实现形式,也称为的实例。每个对象都拥有自己的状态(由变量表示)和行为(由方法表示)。 --- #### 构造方法的作用 构造方法是一种特殊的成员方法,主要用于在创建对象时初始化对象的状态。其特点如下: - **名称**:构造方法的名字必须与名完全一致。 - **返回型**:构造方法没有返回值型,甚至不写 `void` 关键字[^1]。 - **调用时机**:每当使用 `new` 关键字创建一个新的对象时,都会自动调用相应的构造方法来完成对象的初始化工作。 --- #### 默认构造方法 如果开发者未显式地为某个定义任何构造方法,则编译器会自动生成一个默认的无参构造方法。然而,一旦我们手动定义了一个带参数或其他型的构造方法,那么这个默认的无参构造方法就不会再被提供[^2]。 以下是带有默认构造方法的一个简单例子: ```java public class Date { public int year; public int month; public int day; // 打印日期的方法 public void printDate() { System.out.println(year + "/" + month + "/" + day); } public static void main(String[] args) { Date d = new Date(); // 使用默认构造方法创建对象 d.year = 2023; d.month = 9; d.day = 18; d.printDate(); } } ``` 在这个案例中,由于没有明确定义构造函数,因此系统提供了默认的无参构造方法[^3]。 --- #### 带参数的构造方法 当需要更灵活地控制对象初始状态时,可以通过定义带参数的构造方法来满足需求。下面展示的是如何利用带参数构造方法设置分数的分子和分母并计算其数值的例子: ```java import java.util.Scanner; public class Fraction { double mole; // 分子 double deno; // 分母 // 定义带参数的构造方法 public Fraction(double m, double n){ this.mole = m; this.deno = n; } // 计算分数值的方法 void value(){ if(this.deno == 0){ System.out.print("分母不能为0"); }else{ double s = this.mole / this.deno; System.out.print("该分数的值为" + String.format("%.2f",s)); } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入分子:"); double mole = scanner.nextDouble(); System.out.println("请输入分母:"); double deno = scanner.nextDouble(); Fraction fraction = new Fraction(mole,deno); // 调用带参数的构造方法 fraction.value(); scanner.close(); } } ``` 上述代码展示了如何通过构造方法传递参数以设定对象的初始状态,并执行特定操作[^4]。 --- #### 总结 理解并掌握Java中的对象及其构造方法对于开发高质量的应用程序至关重要。无论是依赖于系统的默认构造还是设计个性化的构造逻辑,都是构建复杂应用不可或缺的一部分。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值