7-1 jmu-Java-03面向对象基础-01-构造方法与toString

这篇具有很好参考价值的文章主要介绍了7-1 jmu-Java-03面向对象基础-01-构造方法与toString。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PTA Java程序设计


7-1 jmu-Java-03面向对象基础-01-构造方法与toString


懒人一键copy

定义一个有关人的Person类,内含属性:

String name、int age、boolean gender、int id
所有的变量必须为私有(private)。
注意:属性顺序请严格按照上述顺序依次出现。

分析:文章来源地址https://www.toymoban.com/news/detail-736660.html

  • 定义一个Person的类,并在类中包含String nameint ageboolean genderint 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;
    }
}

到了这里,关于7-1 jmu-Java-03面向对象基础-01-构造方法与toString的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python-面向对象:面向对象、成员方法 、类和对象、构造方法、魔术方法、封装、继承、类型注解、多态(抽象类(接口))

    当前版本号[20230806]。 版本 修改说明 20230806 初版 生活中数据的组织 学校开学,要求学生填写自己的基础信息,一人发一张白纸,让学生自己填, 易出现内容混乱 但当改为登记表,打印出来让学生自行填写, 就会整洁明了 程序中数据的组织 在程序中简单使用变量来记录学

    2024年02月14日
    浏览(49)
  • 【Java】面向对象基础 之 静态字段和静态方法

    在一个class中定义的字段,我们称之为实例字段。实例字段的特点是,每个实例都有独立的字段,各个实例的同名字段互不影响。 还有一种字段,是用static修饰的字段,称为静态字段:static field。 实例字段在每个实例中都有自己的一个独立“空间”,但是静态字段只有一个共

    2024年02月13日
    浏览(46)
  • 01 面向对象方法的概念

    面向对象不仅仅是一种程序开发方法 使用面向对象程序设计语言 使用对象、类、继承、封装、消息等基本概念进 行编程 面向对象是一种软件方法学 如何看待软件系统与现实世界的关系 以什么观点进行求解 如何进行系统构造 从问题域中客观存在的事物出发来构造软件系统

    2024年02月08日
    浏览(86)
  • Java面向对象03——三大特性之继承

    继承就是 Java 允许我们用 extends ,让一个类与另一个类建立起一种父子关系; 被继承的类称为父类(基类、超类),继承父类的类都称为子类(派生类), 当子类继承父类后,就可以直接使用父类公共的属性和方法了 当子类继承父类后,就可以直接使用父类公共的属

    2024年04月27日
    浏览(44)
  • Java面向对象01——类与对象

    大家好,我是白夜,今天和大家聊聊类与对象 面向过程编程 C 语言就是面向过程编程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 面向对象编程 JAVA 是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 举

    2024年04月08日
    浏览(42)
  • Java 面向对象 03 就近原则和this关键字

    对于起名字需要见名知意,所以这个String n 不太合适: 但是如果将n改为name,会与第五行代码的name重复: 运行代码发现,获取后的姓名为默认值,是null 引入就近原则: 此处打印的是age=10,但是如果想使用成员位置的age ,应该使用this 代码: 运行结果: 使用this关键

    2024年01月21日
    浏览(49)
  • 【Java基础教程】(八)面向对象篇 · 第二讲:Java 数组全面解析——动态与静态初始化、二维数组、方法参数传递、排序与转置、对象数组、操作API~

    掌握数组的动态及静态创建方式、使用及特征; 掌握引用类型数据的特征; 掌握数组的排序、转置操作; 数组可以将多个变量进行统一的命名,这样相同类型的元素就可以按照一定的顺序进行组合排列 。在 Java中,数组属于引用类型数据,所以在数组的操作过程中,也一定

    2024年02月13日
    浏览(50)
  • Java面向对象程序设计实验报告(实验二 面向对象基础练习)

     ✨ 作者: 命运之光  ✨  专栏:Java面向对象程序设计实验报告 目录 ✨一、需求设计 ✨二、概要设计 ✨三、详细设计 ✨四、调试结果 ✨五、测试结果 ✨附录:源程序代码(带注释) 测试类demo2 Address类 Employee类 实验二 面向对象基础练习 实验环境: Eclipse+JDK 实验目的:

    2024年02月06日
    浏览(71)
  • [Java基础]面向对象

           目录 1、对象和类 2、类之间的关系 3、引用 4、对象的创建和使用 5、构造函数/构造方法 6、内存解析        在这篇文章中,我们将学习面向对象的思想,并学习如何使用面向对象思想编程。在学习面向对象编程之前,我们先了解一下编程语言的发展:机器语言,汇

    2024年02月08日
    浏览(41)
  • Java基础 --- 面向对象

    面向:拿、找 对象:能干活的东西 面向对象编程:拿东西过来坐对应的事情 类(设计图):是对象共同特征的描述; 对象:是真实存在的具体东西 在Java中,必须先设计类,才能获得对象。 如何定义类 如何得到类的对象 如何使用对象 访问属性:对象名.成员变量 访问行为

    2024年03月17日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包