LPCC666 2021-02-16 22:37 采纳率: 100%
浏览 44
已采纳

JAVA初学者提一个关于类的问题

请问JAVA中定义的类中的属性是否可以存储数据(初学者表达可能不清楚)

结合代码问一下:我代码中使用set_date设置属性值后 是不是就永久改变了代码中manage类下的属性(year month day),有没有办法可以测试(直接读取manage类下的属性值)?

代码如下:

import java.util.Scanner;
public class demo_setdate {
    public static void main(String[] args){
        //输入日期x,y,z;
        Scanner input_year = new Scanner(System.in);
        System.out.print("请输入年份:");
        String x = input_year.next();
        System.out.print("请输入月:");
        String y = input_year.next();
        System.out.print("请输入日:");
        String z = input_year.next();

        //预设日期 a,b,c = 2021,2,16;(通过含参构造器)
        String a = "2021";
        String b = "2";
        String c = "16";
        manage read_date1 = new manage(a,b,c);
        //输出预设日期
        System.out.println("预设的日期为:" + read_date1.get_year() + "年" + read_date1.get_month() + "月" + read_date1.get_day() + "日");

        //通过无参构造器使用set_date成员方法将输入的日期进行存储;
        manage save_date = new manage();
        save_date.set_date(x,y,z);
        //输出键盘输入的日期;
        System.out.println("输入的日期为:" + save_date.get_year() + "年" + save_date.get_month() + "月" + save_date.get_day() + "日");
    }
}
//定义类 manage;
class  manage{

    private String year;
    private String month;
    private String day;

    //构造器Constructor;
    manage(){}
    manage(String year,String month,String day){
        set_date(year,month,day);
    }

    //成员方法:set_date;
    public void set_date(String year,String month,String day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }

    //成员方法:get_year;
    public String get_year(){
        return this.year;
    }

    //成员方法:get_month;
    public String get_month(){
        return this.month;
    }

    //成员方法:get_day;
    public String get_day(){
        return this.day;
    }
}
  • 写回答

2条回答 默认 最新

  • 西风逐白马 2021-02-17 01:52
    关注

    1.你的这个类定义的属性是成员变量,不是类变量,是用对象进行调用的,不是用类调用的。

    2.并且你使用set_date方法前,通过manage save_date = new manage();创建了一个对象,然后你用这个对象调用了方法,也就是这句save_date.set_date(x,y,z);。所以整个过程是对象在调用在工作,改变的也是成员变量不是类变量,也可以理解为对象的数据被改变了。。

    3.测试就通过你主程序的最后一句话就行,不能用对象通过.出来是因为你的成员变量是私有的只能在类的范围内被访问,你把私有去了就可以点出来了是用对象调用的。

    4.最后永久不知道你指的是什么意思,如果想要这个数据永久存在这样肯定是不行的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大