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