一.this关键字调用书名属性的三个类型题
1.创建一个借书类BorrowABook,借书类中有书名属性name,参数为name的构造方法和借书方法borrow()。编写一个程序,使用this关键字调用书名属性后,借阅《战争与和平这本书》
package myObject;
public class BorrowABook {
//成员变量name
String name;
//有参构造方法
public BorrowABook(String name) {
this.name = name;//将有参构造方法中的参数name的值赋给属性name
}
//成员方法borrow
public void borrow() {
//在此输出属性的值
System.out.println("请前往借阅处领取"+name);
}
//主方法
public static void main(String[] args) {
//创建新对象
BorrowABook a = new BorrowABook("《战争与和平》");
//调用方法
a.borrow();
}
}
2.创建教师类,类中有姓名、性别、和年龄三个属性,在构造方法中使用this关键字分别为这三个成员属性赋值
我的代码:
package myObject;
public class TeachMan {
String name;
String sex;
int age;
public TeachMan(String name,String sex,int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
public void Teach() {
System.out.println("姓名为:"+name);
System.out.println("性别为:"+sex);
System.out.println("年龄为:"+age);
}
public static void main(String[] args) {
TeachMan a = new TeachMan("张三","男",18);//要和上面有参构造格式一样
a.Teach();
TeachMan b = new TeachMan("李四","男",19);
b.Teach();
TeachMan c = new TeachMan("王五","男",20);
}
}
答案代码:
package myObject;
public class Teacher {
String name;
char sex;
int age;
public Teacher(String name, char sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
System.out.println("教师姓名:" + name + "\n教师性别:" + sex + "\n教师年龄:" + age);
}
public static void main(String[] args) {
Teacher chinese = new Teacher("张三", '男', 38);
Teacher math = new Teacher("李四", '男', 45);
Teacher english = new Teacher("王莉", '女', 32);
}
}
①.有无参构造方法,创建对象下面写调用方法;没有无参方法,直接在有参方法内输出,不写调用方法
②.如果有参方法中为多个参数,给对象赋值时要与参数格式一致,一对一,多对多
3.一只大熊猫,长1.3米,重90千克。在自定义方法中使用this关键字调用类的成员变量并在控制台输出大熊猫信息
package myObject;
public class Panda {
private double length = 1.3;
private double weight = 90.0;
public String getMessages() {
return "熊猫体长" + this.length + "米,体重" + this.weight + "KG。";
}
public static void main(String[] args) {
Panda panda = new Panda();
System.out.println(panda.getMessages());
}
}
①.写无参方法,直接在主方法中输出"对象.无参方法"
4.多参数情况
书上P141鸡蛋灌饼例题为单参数;习题第二题信用卡类为多参数。多参数的无参构造方法,意思不是没有参数,而是要在方法后括号中写出已有参数,不写变化的参数
package myObject;
//创建类
public class CreditCard {
//创建两个成员变量:卡号,密码
String number;
String password;
//有参方法
public CreditCard(String number,String password) {
//将参数赋给成员变量
this.number = number;
this.password = password;
if(password.equals("123456")) {
System.out.println("信用卡号"+number+"的密码为:"+password);
}else {
System.out.println("重置信用卡号"+number+"的密码为:"+password);
}
}
//无参方法
public CreditCard(String number) {//注意此处
this(number,"123456");//注意此处
}
public static void main(String[] args) {
CreditCard a = new CreditCard("62002");//默认对象
CreditCard b = new CreditCard("62002","820924");//特殊情况对象
}
}
还有一点要注意,在String字符串的equals()方法,格式为a.equals(str);
如果括号中为字符串名,则不需要加引号;如为具体字符串,则必须加引号
例:
a.equals(str);
a.equals(“123456”);