首页 > 基础资料 博客日记
7-1 jmu-Java-03面向对象基础-01-构造方法与toString
2023-11-23 18:01:26基础资料围观417次
本篇文章分享7-1 jmu-Java-03面向对象基础-01-构造方法与toString,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识
PTA Java程序设计
7-1 jmu-Java-03面向对象基础-01-构造方法与toString
懒人一键copy
定义一个有关人的Person类,内含属性:
String name、int age、boolean gender、int id
所有的变量必须为私有(private)。
注意:属性顺序请严格按照上述顺序依次出现。
分析:
- 定义一个Person的类,并在类中包含
String name
、int age
、boolean gender
、int id
,并且定义为私有属性(private
)
private String name;
private int age;
private boolean gender;
private int id;
1.编写无参构造函数:
打印"This is constructor"。
将name,age,gender,id按照name,age,gender,id格式输出
2.编写有参构造函数
依次对name,age,gender赋值。
分析:
- 在IDEA中使用快捷键Alt+Insert快捷生成有参构造器,在
Person
类中创建无参构造器,并输出格式
public Person() {
System.out.println("This is constructor");
System.out.println(name+","+age+","+gender+","+id);
}
public Person(String name, int age, boolean gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
3.覆盖toString函数:
按照格式:类名 [name=, age=, gender=, id=]输出。建议使用Eclipse自动生成.
分析:
- 按照输出格式为
Person [name=a, age=11, gender=false, id=0]
- 在IDEA中使用快捷键Alt+Insert快捷生成toString方法,并编写输出格式
- ps:快捷生成的话输出会
name='a'
多一对单引号,需要在toString方法中删除
@Override
public String toString() {
return "Person [" + "name=" + name +
", age=" + age +
", gender=" + gender +
", id=" + id +
']';
}
4.对每个属性生成setter/getter方法
分析:
- 这里就使用IDEA的快捷生成来生成
set/get
方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isGender() {
return gender;
}
public void setGender(boolean gender) {
this.gender = gender;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
5.main方法中首先从屏幕读取n,代表要创建的对象个数。
然后输入n行name age gender
, 调用上面2编写的有参构造函数新建对象。
然后将刚才创建的所有对象逆序输出。
接下来使用无参构造函数新建一个Person对象,并直接打印该对象。
分析:
- 在main方法中使用
Scanner
输入n,并且数组的长度为n (代表有几个对象存入)- 遍历数组,在遍历的过程中创建对象,并将创建的对象逆序输出 (使用for循环倒序输出)
- 创建一个Person对象,直接打印该对象的
toString()
方法
Scanner sc = new Scanner(System.in);
int nextInt = sc.nextInt();
Person[] s = new Person[nextInt];
for (int i = 0; i < nextInt; i++) {
String a = sc.next();
int b = sc.nextInt();
boolean c=sc.nextBoolean();
s[i] = new Person(a,b,c);
//将对象赋值给数组s的索引为0
}
//i=3
//但是索引只有到2,故-1
for (int i = nextInt-1; i >=0; i--) {
System.out.println(s[i].toString());
//打印出数组s的索引为0的toString方法
}
Person person = new Person();
System.out.println(person.toString());
懒人一键copy
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int nextInt = sc.nextInt();
Person[] s = new Person[nextInt];
for (int i = 0; i < nextInt; i++) {
String a = sc.next();
int b = sc.nextInt();
boolean c=sc.nextBoolean();
s[i] = new Person(a,b,c);
}
for (int i = nextInt-1; i >=0; i--) {
System.out.println(s[i].toString());
}
Person person = new Person();
System.out.println(person.toString());
}
}
class Person{
private String name;
private int age;
private boolean gender;
private int id;
@Override
public String toString() {
return "Person [" + "name=" + name +
", age=" + age +
", gender=" + gender +
", id=" + id +
']';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isGender() {
return gender;
}
public void setGender(boolean gender) {
this.gender = gender;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Person() {
System.out.println("This is constructor");
System.out.println(name+","+age+","+gender+","+id);
}
public Person(String name, int age, boolean gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
}
文章来源:https://blog.csdn.net/qq_53160211/article/details/134068671
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: