> Java > java지도 시간 > 자바 생성자란 무엇입니까? 생성자를 어떻게 사용하나요?

자바 생성자란 무엇입니까? 생성자를 어떻게 사용하나요?

王林
풀어 주다: 2019-08-30 10:14:31
앞으로
2748명이 탐색했습니다.

1. 생성자 메서드를 사용하는 방법

클래스를 통해 객체를 생성하는 과정을 인스턴스화라고 합니다. 인스턴스화는 생성자(생성자라고도 함)를 호출하여 수행됩니다.

1.1. 생성자란 무엇인가요?

메소드 이름은 클래스 이름과 동일합니다(대소문자 포함)
반환 유형이 없습니다
객체를 인스턴스화할 때 생성자를 호출해야 합니다

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();
    }
}
로그인 후 복사

1.2. 암시적 생성자

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;
    }  
     
}
로그인 후 복사
를 제공합니다.

1.3 매개변수화된 생성자가 제공되는 경우

일단 매개변수화된 생성자가 제공됩니다. 생성자 메소드
는 또한 매개변수 없는 생성자를 명시적으로 제공하지 않습니다.
그러면 기본 매개변수 없는 생성자는 "더 이상 사용할 수 없습니다"

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(); //无参的构造方法“木有了”
    }  
      
}
로그인 후 복사

1.4 생성자 메소드의 오버로딩

생성자는 일반 메소드와 동일할 수도 있습니다. overloaded

 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);
        }
         
    }
로그인 후 복사

Exercise: Constructor

(Hero에 대한 4개의 매개변수를 사용하여 생성자를 디자인합니다
4개의 매개변수는
String HeroName
float HeroHP
float HeroArmor
int HeroMoveSpeed)

답변:

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);
    }
      
}
로그인 후 복사

관련된 내용을 더 배우고 싶다면 콘텐츠를 보려면 PHP 중국어 웹사이트를 방문하세요: JAVA 비디오 튜토리얼

위 내용은 자바 생성자란 무엇입니까? 생성자를 어떻게 사용하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿