| 
	本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
	   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 
					
					
						
							
						
											
							
					
					
					
	   
 
4 个答案 
	 1563590a 跳转到问题位置 答案时间:2025-01-02 这里不是说过吗 
你这里有一个Hero garen =  new Hero();
这里实际上是两个语句
声明Hero类型的garen
以及调用方法 Hero();
当不写构造方法时,会默认有一个public hero(){}
所以不会报错
但如果你已经写了一个带参的构造方法
public hero(String name){};
则原来的系统默认语句消失,这时候需要你手动添加public hero(){} 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 条以前的提问,请 点击查看 
			
			提问之前请登陆
			
		 
		提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢	
	 |