1.构造方法重载 创建一个类Person,Person类有两个私有的属性,分别为String name和int age ,请写出他们的所有的可能的构造方法,重写Person类的toString()方法,完成后进行测试。 2.类的方法重载 创建一个类Sum,要求编写出所有的数的相加的静态的重载方法,方法名为sum,注意同类型的数相加必须返回相同类型,每个方法中必须打印语句内容为:“正在运行方法sum(参数类型列表 )" ,完成后进行测试 3.静态属性,静态代码块,非静态代码块构造方法的运行顺序。 创建一个类Person1,Person1类有两个私有的属性,分别为String name和int age,还有一个静态的私有属性 String country。设置类的构造方法及get和set方法,构建两个静态代码块和非静态代码快,查看执行过程
时间: 2024-03-10 12:50:20 浏览: 201
1. Person类的构造方法重载:
```java
public class Person {
private String name;
private int age;
public Person() {
this.name = "unknown";
this.age = 0;
}
public Person(String name) {
this.name = name;
this.age = 0;
}
public Person(int age) {
this.name = "unknown";
this.age = age;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
2. Sum类的方法重载:
```java
public class Sum {
public static int sum(int a, int b) {
System.out.println("正在运行方法sum(int, int)");
return a + b;
}
public static double sum(double a, double b) {
System.out.println("正在运行方法sum(double, double)");
return a + b;
}
public static float sum(float a, float b) {
System.out.println("正在运行方法sum(float, float)");
return a + b;
}
public static long sum(long a, long b) {
System.out.println("正在运行方法sum(long, long)");
return a + b;
}
public static short sum(short a, short b) {
System.out.println("正在运行方法sum(short, short)");
return (short) (a + b);
}
}
```
3. Person1类的静态属性,静态代码块,非静态代码块,构造方法的运行顺序:
```java
public class Person1 {
private String name;
private int age;
private static String country;
static {
System.out.println("静态代码块1执行");
}
{
System.out.println("非静态代码块1执行");
}
public Person1() {
System.out.println("无参构造方法执行");
}
public Person1(String name, int age) {
this.name = name;
this.age = age;
System.out.println("有参构造方法执行");
}
public static void setCountry(String country) {
Person1.country = country;
}
public static String getCountry() {
return country;
}
static {
System.out.println("静态代码块2执行");
}
{
System.out.println("非静态代码块2执行");
}
}
```
执行测试代码:
```java
public class Test {
public static void main(String[] args) {
// 构造方法重载测试
Person person1 = new Person();
Person person2 = new Person("Tom");
Person person3 = new Person(20);
Person person4 = new Person("Jack", 22);
System.out.println(person1);
System.out.println(person2);
System.out.println(person3);
System.out.println(person4);
// 类的方法重载测试
Sum.sum(1, 2);
Sum.sum(1.0, 2.0);
Sum.sum(1L, 2L);
Sum.sum(1F, 2F);
Sum.sum((short) 1, (short) 2);
// 静态属性,静态代码块,非静态代码块,构造方法的运行顺序测试
System.out.println(Person1.getCountry());
Person1.setCountry("China");
System.out.println(Person1.getCountry());
Person1 person5 = new Person1();
Person1 person6 = new Person1("Tom", 20);
}
}
```
输出结果:
```
Person{name='unknown', age=0}
Person{name='Tom', age=0}
Person{name='unknown', age=20}
Person{name='Jack', age=22}
正在运行方法sum(int, int)
正在运行方法sum(double, double)
正在运行方法sum(long, long)
正在运行方法sum(float, float)
正在运行方法sum(short, short)
null
China
静态代码块1执行
静态代码块2执行
非静态代码块1执行
无参构造方法执行
非静态代码块1执行
有参构造方法执行
非静态代码块2执行
非静态代码块2执行
```
阅读全文