Java 方法的名称是否与其类相同? 公共类人物{ 私人互联网; 公众人物(姓名首字母缩写){ 如果(初始年龄=13岁和年龄

Java 方法的名称是否与其类相同? 公共类人物{ 私人互联网; 公众人物(姓名首字母缩写){ 如果(初始年龄=13岁和年龄,java,Java,在上面的代码中,当使用参数创建person类的实例时,它会自动调用类中的person方法吗 密码是什么 人员p=新人员(年龄); 构造函数还是方法调用?两者都是吗? 使用与类同名的方法的目的是什么? 它是如何工作的?我个人不喜欢与它所在的类具有相同nam的方法,但是: public class Person { private int age; public Person(int initialAge) { if (initialAge<= 0) {

在上面的代码中,当使用参数创建person类的实例时,它会自动调用类中的person方法吗

密码是什么 人员p=新人员(年龄); 构造函数还是方法调用?两者都是吗? 使用与类同名的方法的目的是什么?
它是如何工作的?

我个人不喜欢与它所在的类具有相同nam的方法,但是:

public class Person {
    private int age;    

    public Person(int initialAge) {
     if (initialAge<= 0) {
         System.out.println("Age is not valid, setting age to 0.");
     }
      else {
          age = initialAge;
      }
    // Add some more code to run some checks on initialAge
    }

  public void amIOld() {
    if (age < 13) {
        System.out.print("You are young.");

    }
    else if (age >= 13 && age < 18) {
        System.out.print("You are a teenager.");
    }
    else {
        System.out.print("You are old.");
    }
    // Write code determining if this person's age is old and print the correct statement:
    System.out.println(/*Insert correct print statement here*/);
  }

  public void yearPasses() {
    age += 1;

  }




  public static void main(String[] args  {

    Scanner sc = new Scanner(System.in);
    int T = sc.nextInt();
    for (int i = 0; i < T; i++) {
        int age = sc.nextInt();
        Person p = new Person(age);
        p.amIOld();
        for (int j = 0; j < 3; j++) {
            p.yearPasses();
        }
        p.amIOld();
        System.out.println();
    }
    sc.close();
  }
}

一般来说,类的名称应该是一个名词,而方法的名称应该是一个动词,,它被称为构造函数。当您创建这样的新实例时,它将被执行:
Person me=new Person(99);
您可以有多个构造函数,如:

public class Person {
  public Person() {}    // constructor
  public void Person {} // method
  public static void main(String... args) {
    Person p = new Person();
    p.Person();
  }
}
在此处输入代码
公众人物(姓名首字母缩写){

如果创建类的对象时(初始值),则

  • 首先执行静态块
  • 构造函数如果未定义,则为默认构造函数
  • 之后,使用该对象调用该方法
  • 构造函数不是方法,因为它没有任何返回类型。如果类中未定义构造函数,则会自动调用默认构造函数。
    否则,在创建对象时将调用特定的构造函数。

    一个与类类似且没有void或任何returntyp的方法称为构造函数

    enter code here
    public Person(int initialAge) {
        if (initialAge<= 0) {
            System.out.println("Age is not valid, setting age to 0.");
        }
        else {
            age = initialAge;
        }
    }
    
    public Person() {
        age = 0;
    }
    
    每个CALS都有一个默认构造函数(如上图所示),该构造函数不必显式写出即可使用(由编译器生成),但可以重写和重载以获得更高的功能性。 每次生成类的对象时都会调用构造函数

    class MyClass {
        public MyClass () {
            //constructor code here
        }
    }
    
    该程序现在生成2个person对象,objct p1保存在年龄变量值23中,objct p2保存在年龄变量值51中。 年龄由使用
    newperson(int-age)
    station调用的构造函数设置

    如果您没有初始化一个类vriable(在本例中为
    int age
    ),但在构造函数上设置了它的值,则该类的其余部分会将其视为使用特定值初始化

    您可以强制具有构造函数的程序员在创建类时设置类的特定属性,并且可以确保设置了这些值

    如果重载构造函数,可以使用以下命令调用另一个构造函数:

    class Person {
        pulbic int age;
    
        public Person (int age) {
            this.age = age;
      }
    
    
       }
    
    class Main {
        public static void main(String args[]) {
            //creating 2 objects of person
            Person p1 = new Person(23)
            Person p2 = new Person(51)
        }
    }
    

    构造函数也不能调用该类的任何方法(除其他构造函数外),因为在构造函数运行时该类没有完全生成。

    查找“构造函数”。这就是“与该类同名的方法”的含义是。从概念上讲,构造函数不是方法,尽管它看起来很像方法。将构造函数视为一个特殊的代码块,用于初始化新对象。构造函数暗示其名称与其类相同,但并非相反。我认为我们可以有一个与类名称相同的普通方法。区别在于或者不能有返回类型(即使它是
    void
    ),而常规方法必须有返回类型.cmiw。
    this(/*Overloaded parameters*/);