Java程序设计实验二 类与对象

实验二   类与对象

一、实验目的及要求

1.实验目的

  1. 掌握如何使用类来创建、封装对象;
  2. 掌握如何定义和构造一个类;
  3. 掌握方法重载与多态;
  4. 掌握对象的组合、参数传值的方法;
  5. 理解并掌握类变量与实例变量、以及类方法与实例方法的区别。

2.实验要求

  1. 理解并掌握类与对象的各种基本概念;
  2. 掌握如何定义类和创建对象;
  3. 掌握如何编写程序对基本概念进行验证,并确定概念是否正确理解;
  4. 对实验中出现的各种问题进行分析、总结。

二、实验环境

  1. 硬件要求:一台电脑(带Windows 10操作系统)
  2. 软件要求: JDK-14.0.2,Intellij IDEA 2020.1.2

三、实验内容(实验方案、实验步骤、设计思路等)

  1. 实验方案:将编写好的Java类文件生成运行,看是否符合预期效果。
  2. 实验步骤:创建Java项目、Java类文件,编写代码并生成Java程序运行,检验。
  3. 设计思路:
    1. 先创建Java项目、包、Java类文件;
    2. 编程创建一个类Phone(手机),一个类Property(属性);
      a) 编程定义各类实例变量、实例函数、类变量、类函数;
      b) 编程实现对象组合、构造函数、重载与多态等功能;
      c) 在主函数中建立一个Phone类的对象phone来设置手机的相关数据;
      d) 通过show()函数输出;
      e) 通过Qusetion_one()和Question_two()函数提问是否联网、是否播放音乐;
      f) 通过键盘输入是、否进行选择;
    3. 完善相关功能及代码,生成Java程序运行,检查结果是否正确,完成实验报告。

四、实验结果与分析

Java程序设计实验二 类与对象

五、附源代码

package experiment.two;

import java.util.Scanner;

class Property//定义类
{   //定义属性
    protected String name;//品牌名
    protected String Network_Support;//所支持网络运营商
    protected String Volume;//铃声
    public Property(String name,String Network_Support,String Volume)
    {//有参构造方法
        this.name=name;
        this.Network_Support=Network_Support;
        this.Volume=Volume;
    }
}

class Phone//定义类
{
    //定义属性
    protected String size;//实例变量:尺寸
    protected String color;//实例变量:颜色
    protected String RAM;//实例变量:内存
    protected String pixel_front;//实例变量:前镜头像素
    protected String pixel_rear;//实例变量:后镜头像素
    protected static String length;//类变量:长度
    protected static String width;//类变量:宽度
    protected static String thickness;//类变量:厚度

    protected Property property;//对象组合  声明Property类的对象

    public Phone(String name,String Network_Support,String Volume)
    {//有参构造方法
        this.property=new Property(name,Network_Support,Volume);//对象组合
    }
    public static String get_Size(double l,double w,double t)
    {//重载方法   类方法
        length=String.valueOf(l);//将数字转变为字符串
        width=String.valueOf(w);//将数字转变为字符串
        thickness=String.valueOf(t);//将数字转变为字符串
        return length+"mm"+" × "+width+"mm"+" × "+thickness+"mm";
    }
    public void get_Phone(int ram1,int ram2)
    {//重载方法   实例方法
        String r1,r2;
        r1=String.valueOf(ram1);//将数字转变成字符串
        r2=String.valueOf(ram2);//将数字转变成字符串
        RAM=r1+"GB+"+r2+"GB";
    }
    public void get_Phone(String c1, String c2)
    {//重载方法   实例方法
        String cs1,cs2;
        cs1=c1.trim().substring(0,c1.indexOf("色"));//去除字符串前后所有空格、截取字符串
        cs2=c2.trim().substring(0,c2.indexOf("色"));//去除字符串前后所有空格、截取字符串
        color=cs1+"+"+cs2+"色";
    }

    public void get_Phone(int f,int r1,int r2,int r3)
    {//重载方法   实例方法
        String Front,Rear1,Rear2,Rear3;
        Front=String.valueOf(f);//将数字转变成字符串
        Rear1=String.valueOf(r1);//将数字转变成字符串
        Rear2=String.valueOf(r2);//将数字转变成字符串
        Rear3=String.valueOf(r3);//将数字转变成字符串
        pixel_front=Front+"万像素";
        pixel_rear=Rear1+"万+"+Rear2+"万+"+Rear3+"万像素";
    }

    public void get_Network(String whether)//行为:联网
    {
        switch (whether)
        {
            case "是":
                System.out.println(property.name+"手机已成功联网,网络运营商为:"+property.Network_Support);
                break;
            case "否":
                System.out.println(property.name+"手机未能成功联网");
                break;
            default:break;
        }
    }
    public void get_Volume(String whether)
    {//行为:播放铃声
        switch (whether)
        {
            case "是":
                System.out.println(property.name+"手机已成功播放铃声:"+property.Volume);
                break;
            case  "否":
                System.out.println(property.name+"手机未能成功播放铃声");
                break;
            default:break;
        }
    }
    public void show() //输出手机的相关参数
    {
        System.out.println("手机:"+property.name);
        System.out.println("内存:"+RAM);
        System.out.println("尺寸:"+size);
        System.out.println("前镜头像素:"+pixel_front+"  后镜头像素:"+pixel_rear);
        System.out.println("颜色:"+color);
        System.out.println("网络运营商:"+property.Network_Support);
        System.out.println("铃声:"+property.Volume);
    }
    public void Question_one()//定义问题:提问是否要联网
    {
        System.out.println("请问是否需要联网? (请输入“是”或“否”)");
    }
    public void Question_two()//定义问题:提问是否播放铃声
    {
        System.out.println("请问是否播放铃声? (请输入“是”或“否”)");
    }
}
public class program_1 {
    public static void main(String[] args) {
        Phone phone=new Phone("华为mate20","电信","《Dream It Possible》");
//创建对象并初始化
        phone.get_Phone(16,256);//多态
        phone.get_Phone("深蓝色","亮白色");//多态
        phone.get_Phone(2400,1200,1600,800);
        phone.size=phone.get_Size(158.2,77.2,8.3);//调用类函数
        phone.show();//调用函数,输出手机相关参数

        phone.Question_one();//调用函数,提问是否联网
        Scanner scanner1=new Scanner(System.in);//调用系统类,通过键盘输入数据
        String w1=scanner1.nextLine().trim();//读取输入内容并去除前后空格
        phone.get_Network(w1);//调用函数,联网
        phone.Question_two();//调用函数,提问是否播放铃声
        Scanner scanner2=new Scanner(System.in);//调用系统类,通过键盘输入数据
        String w2=scanner2.nextLine().trim();//读取输入内容并去除前后空格
        phone.get_Volume(w2);//调用函数,播放铃声
    }
}

上一篇:2022_01_05日结


下一篇:DOM实现简单手机号验证