public class Lan{
public static void main(String []agrs){
/*
Person p1=new Person();
p1.age=8;
p1.Test();
System.out.println("第一个为"+p1.age);
创建这一个的时候就不行,提示找不到符号,在“Person p1=new Person()”的new这里提示的,去掉可就没问题。。
*/
Person p2=new Person(7,"小五");
p2.Test();
p2.jisuan();
System.out.println("第二个为"+p2.age);
}
}
class Person{
int age;
String name;
public void jisuan()
{
int i=2;
System.out.println(i);
}
public void Test(){
System.out.println("做测试1");
}
Person(int age,String name){
this.age=age;
this.name=name;
}
}
기본 생성자가 없습니다
위 질문에 답하자면, 액세스 한정자를 작성하지 않고 언제 Java가 비공개가 되었나요? 나는 가짜 자바를 사용하고 있는가?
생성자를 명시적으로 작성하는 경우. 기본 생성자는 생성되지 않습니다.
으아악Person()만 추가하세요{
참고
클래스의 생성자를 재정의하는 경우 빈 생성자를 재정의해야 합니다.
일부 프레임워크는 리플렉션을 통해 객체를 생성할 때 이 기본 생성자를 찾기 때문입니다.
Test() 메소드를 test()로 변경해주세요.
Person 클래스의 매개변수화된 생성자는 기본 생성자를 재정의합니다.
참고: 기본 생성자에는 매개변수가 없습니다
따라서 다음과 같이 사용하는 경우: Person p1=new Person();
Person 클래스에 매개변수 없는 생성자를 지정해야 합니다. 또는 매개변수가 포함된 생성자를 간단히 제거하세요.
Person 클래스에 생성자를 정의했기 때문에 기본 생성자 Person()은 생성되지 않고 사용자 정의 생성자가 사용됩니다.
함수 오버로딩을 사용하고 생성자 Person()을 작성할 수도 있습니다.
추가 참고 사항: 병음을 사용하지 마세요