本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
10分4秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 步骤 1 : 什么是构造方法 步骤 2 : 隐式的构造方法 步骤 3 : 如果提供了一个有参的构造方法 步骤 4 : 构造方法的重载 步骤 5 : 练习-构造方法 步骤 6 : 答案-构造方法
方法名和类名一样(包括大小写)
没有返回类型 实例化一个对象的时候,必然调用构造方法 public class Hero {
String name;
float hp;
float armor;
int moveSpeed;
// 方法名和类名一样(包括大小写)
// 没有返回类型
public Hero() {
System.out.println("实例化一个对象的时候,必然调用构造方法");
}
public static void main(String[] args) {
//实例化一个对象的时候,必然调用构造方法
Hero h = new Hero();
}
}
Hero类的构造方法是
public Hero(){ } 这个无参的构造方法,如果不写,就会默认提供一个 public class Hero {
String name; //姓名
float hp; //血量
float armor; //护甲
int moveSpeed; //移动速度
//这个无参的构造方法,如果不写,
//就会默认提供一个无参的构造方法
// public Hero(){
// System.out.println("调用Hero的构造方法");
// }
public static void main(String[] args) {
Hero garen = new Hero();
garen.name = "盖伦";
garen.hp = 616.28f;
garen.armor = 27.536f;
garen.moveSpeed = 350;
Hero teemo = new Hero();
teemo.name = "提莫";
teemo.hp = 383f;
teemo.armor = 14f;
teemo.moveSpeed = 330;
}
}
一旦提供了一个有参的构造方法
同时又没有显式的提供一个无参的构造方法 那么默认的无参的构造方法,就“木有了“ public class Hero {
String name; //姓名
float hp; //血量
float armor; //护甲
int moveSpeed; //移动速度
//有参的构造方法
//默认的无参的构造方法就失效了
public Hero(String heroname){
name = heroname;
}
public static void main(String[] args) {
Hero garen = new Hero("盖伦");
Hero teemo = new Hero(); //无参的构造方法“木有了”
}
}
和普通方法一样,构造方法也可以重载
public class Hero {
String name; //姓名
float hp; //血量
float armor; //护甲
int moveSpeed; //移动速度
//带一个参数的构造方法
public Hero(String heroname){
name = heroname;
}
//带两个参数的构造方法
public Hero(String heroname,float herohp){
name = heroname;
hp = herohp;
}
public static void main(String[] args) {
Hero garen = new Hero("盖伦");
Hero teemo = new Hero("提莫",383);
}
}
为Hero设计4个参数的构造方法
这四个参数分别是 String heroName float heroHP float heroArmor int heroMoveSpeed
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
2分43秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 public class Hero {
String name; //姓名
float hp; //血量
float armor; //护甲
int moveSpeed; //移动速度
//带一个参数的构造方法
public Hero(String heroname){
name = heroname;
}
//带两个参数的构造方法
public Hero(String heroname,float herohp){
name = heroname;
hp = herohp;
}
public Hero(String heroName,float heroHP,float heroArmor,int heroMoveSpeed){
name = heroName;
hp = heroHP;
armor = heroArmor;
moveSpeed=heroMoveSpeed;
}
public static void main(String[] args) {
Hero garen = new Hero("盖伦");
Hero teemo = new Hero("提莫",383);
Hero db = new Hero("死哥",400,27,360);
}
}
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2024-06-04
大哥们help
3 个答案
huazhang 跳转到问题位置 答案时间:2024-07-10 public class Hero {
//英雄属性
String name;
float hp;
float movespeed;
float armor;
/* 为Hero设计4个参数的构造方法
这四个参数分别是
String heroName
float heroHP
float heroArmor
int heroMoveSpeed
*/
public Hero(String heroName,float heroHp,float HeroArmor,float heroMoveSpeed) {
name=heroName;
hp=heroHp;
armor = HeroArmor;
movespeed=heroMoveSpeed;
}
public static void main(String[] args) {
Hero Garen=new Hero("盖伦",618.12f,23.23f,350.12f);
Hero Teemo=new Hero("提莫",800.12f,35.23f,351.12f);
}
}
虚心求学 跳转到问题位置 答案时间:2024-07-02 以下是我的一个个人理解,恳请各位批评指正。
1.创建一个Hero对象,代码为:new Hero(); //表示开辟了新的内存空间
2.在第1步创建对象的同时,调用了构造器(无参构造),也就是调用了一次 Class Hero内的 Hero() 构造函数。
注意:以上过程也叫做实例化,也就是通过开辟内存、调用构造函数实例化了一个Hero对象;
3.Hero h1 = new Hero(); //表示使用引用变量h1指向了对象Hero开辟的内存空间的地址,通俗来讲就是创建了新的对象实例,然后把地址赋给了h1这个对象。
简单来说,可以这么理解。对象就是一个模板,使用new 表示“实例化”,此时调用构造函数。
举个例子,对象是身份证(不能直接给别人使用),实例化表示去打印店复印了一个身份证的复印件的过程,然后这个就可以把复印件给单位、给别人使用。
JumpTigger 跳转到问题位置 答案时间:2024-06-05 我想了想 因为没有无参的构造方法就试试添加了一个 就正确了 但是还是有点不明白 这个跟那个h1指向创建对象有什么关联呀
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2023-08-21
四个参数的构造器
3 个答案
木宇 跳转到问题位置 答案时间:2024-04-23 打卡
658721cm 跳转到问题位置 答案时间:2024-04-17 package BackText016;
public class Hero {
private String heroName;
private float heroHP;
private float heroArmor;
private int heroMoveSpeed;
public Hero() {
}
public Hero(String heroName, float heroHP, float heroArmor, int heroMoveSpeed) {
this.heroName = heroName;
this.heroHP = heroHP;
this.heroArmor = heroArmor;
this.heroMoveSpeed = heroMoveSpeed;
}
public String getHeroName() {
return heroName;
}
public void setHeroName(String heroName) {
this.heroName = heroName;
}
public float getHeroHP() {
return heroHP;
}
public void setHeroHP(float heroHP) {
this.heroHP = heroHP;
}
public float getHeroArmor() {
return heroArmor;
}
public void setHeroArmor(float heroArmor) {
this.heroArmor = heroArmor;
}
public int getHeroMoveSpeed() {
return heroMoveSpeed;
}
public void setHeroMoveSpeed(int heroMoveSpeed) {
this.heroMoveSpeed = heroMoveSpeed;
}
}
2672148523 跳转到问题位置 答案时间:2024-02-09 public class Hero {
String heroName;
float heroHp;
float heroArmor;
int heroMoveSpeed;
public Hero(String heroName, float heroHp, float heroArmor, int heroMoveSpeed) {
this.heroName = heroName;
this.heroHp = heroHp;
this.heroArmor = heroArmor;
this.heroMoveSpeed = heroMoveSpeed;
}
public static void main(String[] args) {
Hero h1 = new Hero("盖伦", 100, 150, 50);
System.out.println("您的英雄" + h1.heroName + "血量还有" + h1.heroHp + ",护甲等级" + h1.heroArmor + ",移动速度" + h1.heroMoveSpeed);
}
}
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2021-12-17
面向对象学习代码
2021-10-17
为什么会有相关问题?
2021-08-21
面向对象学习代码
提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 53 条以前的提问,请 点击查看
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|