Java-2.构造方法

这篇博客介绍了Java中的构造方法及其作用,包括在创建对象时自动调用构造方法来初始化成员变量。同时,解释了构造方法的重载,允许通过不同方式创建对象,并展示了如何使用`this`关键字来调用同一类中的其他构造方法。示例代码展示了如何在实践中应用这些概念。

一.构造方法:

在创建对象时,自动调用的方法:
语法:

public 类名(传参){

}

注意:
1.没有返回值这一项
2.在我们new的时候,自动调用构造方法

作用:在创建对象的时候,给对象设置属性信息。
Java会默认自动地赠送给每一个类一个无参数的构造方法,但是,如果写了构造方法,系统就不再赠送。

public class car {
	//成员变量
	String color;
	int speed;
	int seat = 5;
	//成员方法
	public car(String color,int speed){		//调用有参构造
		this.color = color;
		this.speed = speed;
	}
	public void run() {
		System.out.println(this.color+"车能跑");
	}
	public void fly(String color) {
		System.out.println(this.color+"的车在"+color+"的云里面跑");//this代指对象的
	}
	public static void main(String[] ages) {
		car Ferrari = new car("绿色",200);	//初始化
		Ferrari.run();
		car Benz = new car("褐色",180);
		Benz.run();
	}
}

二.构造方法的重载:

构造方法也可以进行重载
作用:可以有更多的方式来创建对象
使用this可以访问其他的构造方法
注意:this()

public class daxia {
	String name;
	String waihao;
	int age;
	String bangpai;
	//需要两个构造方法
	public daxia(String name, int age,String bangpai){
		this.name= name;
		this.age= age;
		this.bangpai= bangpai;
	}
	public daxia(String name, int age,String bangpai, String waihao){
		this(name, age, bangpai);	//this还可以调用当前类的其他的构造方法
		this.waihao= waihao;
	}
	public static void main(String[] args){
		daxia a = new daxia("岳不群",18,"华山派");
		daxia b = new daxia("武松",18,"梁山","行者");
	}
}
1、实验要求 本实验要求:实现学生实体类与成绩实体类的联访问。 1-1. 创建工程并配置环境: 1-1.1. 限制1. 工程取名:SE_JAVA_EXP_E023。 1-1.2. 限制2. 创建包,取名:cn.campsg.java.experiment。 1-2. 创建成绩实体类及相属性: 1-2.1. 限制1. 在包cn.campsg.java.experiment下创建成绩实体类:Score。 1-2.2. 分别为Score实体类定义如下属性: 1)实验成绩:浮点类型。 2)项目成绩:浮点类型。 1-2.3.为Score类中的各属性分别创建getter和setter方法。 1-3. 创建学生实体类及相属性: 1-3.1. 限制1. 在包cn.campsg.java.experiment下创建学生实体类:Student。 1-3.2. 分别为Student实体类定义如下属性: 1)学生姓名:字符类型。 2)学生成绩:Score类型。 1-3.3. 为Student类中的各属性分别创建getter和setter方法。 1-4. 创建实体类构造函数。 1-4.1. 为Score类创建0参构造函数,构造函数负责为所有属性设置初始值。 1-4.2. 为Score类创建2参构造函数,构造函数负责为所有属性赋值。 1-4.3. 为Student类创建0参构造函数,构造函数负责为所有属性设置初始值。 1-4.4. 为Student类创建2参构造函数,构造函数负责为所有属性赋值。 1-5. 使用学生实体类。 1-5.1. 限制1. 在包cn.campsg.java.experiment下创建主类:MainClass。 1-5.2. 编写程序主入口函数(main)。 1-5.3. 创建Score对象,并通过2参构造函数分别传入以下数据: 1)实验成绩:60.0f。 2)项目成绩:70.0f。 1-5.4. 创建Student对象,并通过2参构造函数分别传入以下数据: 1)学生姓名:黄世仁。 2)学生成绩:前一步骤创建的socre对象。 1-5.5. 向控制台输出Student实体类中各属性值,格式如下: Student类的姓名属性 + "的实验成绩:" + Score类的实验成绩属性 + ",项目成绩:" + Score类的项目成绩属性。 2、实现思路 2-1. 按实验要求创建工程并配置环境。 2-2. 创建成绩实体类及相属性: 2-2.1. 在包cn.campsg.java.experiment下创建成绩类:Score。 2-2.2. 创建成员变量属性: 1)实验成绩:浮点类型 experiment。 2)项目成绩:浮点类型 project。 2-2.3. 为成员变量(experiment、project)添加setter和getter方法。 2-3. 创建学生实体类及相属性: 2-3.1. 在包cn.campsg.java.experiment下创建学生类:Student。 2-3.2. 创建成员变量属性: 1)学生姓名:字符类型 name。 2)学生成绩:Score类型 socre。 2-3.3. 为成员变量(name、socre)添加setter和getter方法。 2-4. 创建实体类构造函数。 2-4.1. 创建Score类的0参构造器。 2-4.2. 创建Score类的2参构造器,属性初始化如下: 1)实验成绩:experiment = 构造体experiment参数。 2)项目成绩:project = 构造体project参数。 2-4.3. 创建Student类的0参构造器。 2-4.4. 创建Student类的2参构造器,属性初始化如下: 1)实验成绩:name = 构造体name参数。 2)项目成绩:score = 构造体score参数。 2-5. 使用学生实体类: 2-5.1. 在包cn.campsg.java.experiment下创建主类:MainClass。 2-5.2. 为MainClass增加主入口函数:public static void main(String args[])。 2-5.3. 创建Score的实例,并调用2参构造函数,分别传入以下数据: 1)实验成绩:60.0f。 2)项目成绩:70.0f。 2-5.4. 创建Student的实例,并调用2参构造函数,分别传入以下数据: 1)学生姓名:黄世仁 2)学生成绩:前一步骤创建的socre对象 2-5.5. 向控制台输出Student实体类中各属性值,格式如下: 学生对象.getName() + "的实验成绩:" + 学生对象.getSocre().getExperiment() + ",项目成绩:" + 学生对象.getSocre().getProject()
最新发布
11-13
以下是按照要求实现学生实体类与成绩实体类联访问的详细步骤及代码: ### 1. 创建工程 在你常用的 Java 开发工具(如 IntelliJ IDEA 或 Eclipse)中创建一个新的 Java 工程,工程名为 `SE_JAVA_EXP_E023`。 ### 2. 配置环境 确保你的开发工具已正确配置 JDK 环境,以便能够正常编译和运行 Java 代码。 ### 3. 创建实体类及属性、构造函数 #### 成绩实体类 `Score` ```java package cn.campsg.java.experiment; public class Score { private int javaScore; private int mathScore; // 构造函数 public Score(int javaScore, int mathScore) { this.javaScore = javaScore; this.mathScore = mathScore; } // Getter 方法 public int getJavaScore() { return javaScore; } public int getMathScore() { return mathScore; } } ``` #### 学生实体类 `Student` ```java package cn.campsg.java.experiment; public class Student { private String name; private String id; private Score score; // 构造函数 public Student(String name, String id, Score score) { this.name = name; this.id = id; this.score = score; } // Getter 方法 public String getName() { return name; } public String getId() { return id; } public Score getScore() { return score; } } ``` ### 4. 创建主类 `MainClass` 并使用实体类输出信息 ```java package cn.campsg.java.experiment; public class MainClass { public static void main(String[] args) { // 创建成绩对象 Score score = new Score(85, 90); // 创建学生对象 Student student = new Student("张三", "001", score); // 输出学生信息及成绩 System.out.println("学生姓名: " + student.getName()); System.out.println("学生学号: " + student.getId()); System.out.println("Java 成绩: " + student.getScore().getJavaScore()); System.out.println("数学成绩: " + student.getScore().getMathScore()); } } ``` ### 代码解释 - `Score` 类包含两个私有属性 `javaScore` 和 `mathScore`,分别表示 Java 课程和数学课程的成绩。通过构造函数初始化这些属性,并提供对应的 Getter 方法。 - `Student` 类包含三个私有属性 `name`、`id` 和 `score`,分别表示学生的姓名、学号和成绩对象。通过构造函数初始化这些属性,并提供对应的 Getter 方法。 - `MainClass` 类的 `main` 方法中,首先创建一个 `Score` 对象,然后使用该对象创建一个 `Student` 对象。最后,通过调用 `Student` 对象的 Getter 方法输出学生的信息和成绩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值