分析以下代码package Test; public class ThisTest { String name; private void setName(String name) { this.name = name; System.out.println("setName: " + this.name); } private void thisTest(String name) { this.setName(name); System.out.println("thisTest: " + this.name); } public static void main(String[] args) { ThisTest tt = new ThisTest(); tt.setName("Yida"); tt.thisTest("Jenny"); } }
时间: 2024-03-30 12:33:44 浏览: 21
这段代码定义了一个名为 ThisTest 的类,该类包含两私有方法 setName 和 thisTest,以及一个公共的静态方法 main。setName 方法将传入的 name 参数赋值给类变量 name,并且使用 this 关键字引用该类的当前实例。thisTest 方法在调用 setName 方法后输出 name 变量的值。main 方法创建一个 ThisTest 类的实例 tt,并先调用 setName 方法将 name 设置为 "Yida",然后调用 thisTest 方法将 name 设置为 "Jenny" 并输出 name 变量的值。最终的输出结果应该为:
setName: Yida
thisTest: Jenny
相关问题
package com.unit2.test; public class Test4 { public static void main(String[] args) { Salary s=new Salary("员工A","北京",3,3600.00); Employee e=new Salary("员工B","上海",2,2400.00); System.out.println("使用Salary的引用调用mailcheck--"); s.mailCheck(); System.out.println("\n使用employee的引用调用mailcheck--"); e.mailCheck(); } public class Employee{ private String name; private String address; private int number; public Employee(String name,String address,int number) { System.out.println("Employee 构造函数"); this.name=name; this.address=address; this.number=number; } public void mailCheck() { System.out.println("邮寄支票给:"+this.name+" "+this.address); } public String toString() { return name+" "+address+" "+number; } public String getName() { return name; } public String getAddress() { return address; } public void setAddress(String newAddress) { address=newAddress; } public int getNumber() { return number; } } public class Salary extends Employee { private double salary;//全年工资 public Salary(String name,String address,int number,double salary) { super(name,address,number); setSalary(salary); } public void mailCheck() { System.out.println("Salary类的mailcheck方法"); System.out.println("邮寄支票给:"+getName()+",工资为"+salary); } public double getSalary() { return salary; } public void setSalary(double newSalary) { if(newSalary>=0.0) { salary=newSalary; } } public double computePay() { System.out.println("计算工资,付给:"+getName()); return salary/52; } } }更正以上代码错误
在以上代码中存在两个问题:
1. Test4类中定义了两个public类。Java中一个源文件中只能有一个public类,因此需要将Employee类和Salary类单独定义在不同的源文件中。
2. 在Employee类中没有定义getSalary()和setSalary()方法,而这两个方法在Salary类中被使用了,因此需要在Employee类中添加这两个方法。
以下是修改后的代码:
Employee.java
```
package com.unit2.test;
public class Employee{
private String name;
private String address;
private int number;
private double salary;
public Employee(String name, String address, int number) {
System.out.println("Employee 构造函数");
this.name = name;
this.address = address;
this.number = number;
}
public void mailCheck() {
System.out.println("邮寄支票给:" + this.name + " " + this.address);
}
public String toString() {
return name + " " + address + " " + number;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public void setAddress(String newAddress) {
address = newAddress;
}
public int getNumber() {
return number;
}
public double getSalary() {
return salary;
}
public void setSalary(double newSalary) {
if (newSalary >= 0.0) {
salary = newSalary;
}
}
}
```
Salary.java
```
package com.unit2.test;
public class Salary extends Employee {
private double salary;//全年工资
public Salary(String name, String address, int number, double salary) {
super(name, address, number);
setSalary(salary);
}
public void mailCheck() {
System.out.println("Salary类的mailcheck方法");
System.out.println("邮寄支票给:" + getName() + ",工资为" + salary);
}
public double getSalary() {
return salary;
}
public void setSalary(double newSalary) {
if (newSalary >= 0.0) {
salary = newSalary;
}
}
public double computePay() {
System.out.println("计算工资,付给:" + getName());
return salary / 52;
}
}
```
Test4.java
```
package com.unit2.test;
public class Test4 {
public static void main(String[] args) {
Salary s = new Salary("员工A", "北京", 3, 3600.00);
Employee e = new Salary("员工B", "上海", 2, 2400.00);
System.out.println("使用Salary的引用调用mailcheck--");
s.mailCheck();
System.out.println("\n使用employee的引用调用mailcheck--");
e.mailCheck();
}
}
```
package LeiDeJiCheng; public abstract class Animal { private String name; private int age; //构造器 public Animal(){ }//无参 public Animal(String name,int age){ this.name = name; this.age = age; }//有参 public abstract void eat(); public String getName(){ return name; } public void setName(String name){ this.name = name; } public int getAge(){ return age; } } class Rabbit extends Animal{ public Rabbit(){ } public Rabbit(String name,int age){ super(name, age); } @Override public void eat(){ System.out.println("兔子吃胡萝卜"); } } class Dog extends Animal{ public Dog(){} public Dog(String name,int age){ super(name, age); } @Override public void eat(){ System.out.println("狗吃shit"); } } class Friog extends Animal { public Friog(){} public Friog(String name,int age){ super(name,age); } @Override public void eat(){ System.out.println("青蛙吃虫子"); } }
//测试类
public class Test {
public static void main(String[] args) {
Animal animal1 = new Rabbit("小白兔", 2);
Animal animal2 = new Dog("旺财", 3);
Animal animal3 = new Friog("青蛙", 1);
animal1.eat();
animal2.eat();
animal3.eat();
}
}
//输出:
//兔子吃胡萝卜
//狗吃shit
//青蛙吃虫子
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)