zoukankan      html  css  js  c++  java
  • 第四周课程总结&实验报告(二)

    Java实验报告(二)

    实验二 Java简单类与对象

    一、 实验目的

    (1) 掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;

    (2) 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;

    (3) 理解static修饰付对类、类成员变量及类方法的影响。

    二、 实验内容

    1. 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:

    (1) 使用构造函数完成各属性的初始赋值

    (2) 使用get…()和set…()的形式完成属性的访问及修改

    (3) 提供计算面积的getArea()方法和计算周长的getLength()方法

    1. 银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。

    三、实验过程(请自己调整格式)

    1. 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:

    (1) 使用构造函数完成各属性的初始赋值

    (2) 使用get…()和set…()的形式完成属性的访问及修改

    (3) 提供计算面积的getArea()方法和计算周长的getLength()方法

    实验源码:

    package work;
    
    class Rectangle1 {
    		private double width, height;
    		private String color;                                              //声明变量属性
    		
    		public Rectangle1(double width, double height, String color) {     //定义构造方法为属性初始化并赋值
    			this.setWidth(width);
    			this.setHeight(height);
    			this.setColor(color);
    		}                                                      
    		
    		 public void result() {                                           //取得信息的方法
    			System.out.println("面积:"+getArea()+",周长:"+getLength()+",颜色:"+getColor());
    		 }
    		 public double getWidth(){                                       //取得宽度
    			 return width;
        	 }
    		 public void setWidth(double width) {                           //设置宽度
    		 	 this.width = width;
    		 }
    		 public double getHeight() {                                   //取得高度
    		 	 return height;
    		 }
    		 public void setHeight(double height) {                       //设置高度
    			 this.height = height;
    		 }
    		 public String getColor() {                                         //取得颜色
    			 return color;
    		 }
    		 public void setColor(String color) {                       //设置颜色
    			 this.color = color;
    		 }
    		 public double getArea() {                                 //计算面积
    			 return this.width*this.height;
    		 }
    		 public double getLength() {                              //计算周长
    			 return (this.width+this.height)*2;
    		 }
    }
    		public class Rectangle{                                       
    			public static void main(String args[]) {
    				Rectangle1 sum = new Rectangle1(15.00,16.00,"black");       //调用构造方法,传递参数 
    				sum.result();                                      //传出信息
    			}
    		}
    
    

    实验中遇到的问题:

    1.在新建类时直接设置了public static void main(String args[]) ,并在其中使用了this,出现了错误,依靠提示将其修改。

    2这是我在本题中花费时间最长的问题,进行了各种修改才发现是我在输出时没有将color输出。

    3.在不断修改第二题的过程中我突然发现了两种返回getArea()方法和getLength()方法结果的办法

    实验结果:

    2. 银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。

    package work;
    
    import java.util.Scanner;
    class Bank {
    	private String tag, name, time;
    	private int password;
    	private double balance;
    	
    	 public Bank(String tag, String name, String time, int password, double balance) {
    	        this.setTag(tag);
    	        this.setName(name);
    	        this.setTime(time);
    	        this.setPassword(password);
    	        this.setBalance(balance);
    	    }
    	 public String getTag() {
    		 return tag;
    	 }
    	 public void setTag(String tag) {
    		 this.tag = tag;
    	 }
    	 
    	 public String getName() {
    	     return name;
    	 }
         public void setName(String name) {
             this.name = name;
         }
         
         public String getTime() {
    	     return time;
    	 }
         public void setTime(String time) {
             this.time = time;
         }
         
         public int getPassword() {
    	     return password;
    	 }
         public void setPassword(int password) {
             this.password =  password;
         }
         
         public double getBalance() {
    	     return balance;
    	 }
         public void setBalance(double balance) {
             this.balance = balance;
         }
         
         Scanner s = new Scanner(System.in);
         public void SaveOrTake() {
        	 int num = s.nextInt();
        	 if(num<=0&&balance<=0)
        		 System.out.println("余额不足");
             else
            	 balance += num;
         }
         
         public void ChangePW() {
        	 int p = s.nextInt();
        	 if(p != 123456)
        		 System.out.println("密码错误");
        	 else
        		 System.out.println("请输入新密码");
        	     int n = s.nextInt();
        		 password = n; 
         }
         
    }
    public class Account{
    	public static void main(String[] args) {
    		 Bank str;
    	        str=new Bank("123456789eq","LI","20190922",123456,666.01);
    		Scanner sc = new Scanner(System.in);
    		int a = sc.nextInt();
    		switch(a){
    		case 1:
    			str.SaveOrTake();
    		    break;
    		case 2:
    			str.ChangePW();
    		    break;
    		case 3:
    			System.out.println("123456789eq");
    		    break;
    		case 4:
    			System.out.println("20190922");
    			break;
    		}
    	}
    }
    
    
    

    实验中遇到的问题:

    1.第一个遇到的问题就是不知道怎么随机给账户生成一个唯一标识。看了学委的博客发现他是用了base64编码,百度了一下base64编码,了解了这是个什么东西,但是我目前还是不会使用。
    2.开户日期应该连接网络同步上传,这里我也还不太懂该怎么弄,但是在搜索的过程中发现了别人的代码,这部分还有待实验。

    
    import java.util.Calendar;
    import java.util.Date;
    public class gaintime {
    /**
    * @param args
    */
       public static void main(String[] args) {
         Date today = new Date();
         System.out.println("当前时间是" + today.toString());
         Calendar now = Calendar.getInstance();
         int day = now.get(Calendar.DATE);
         int time = now.get(Calendar.HOUR_OF_DAY);
         System.out.println(time);
    

    四、 总结

    1.第一题很简单,但是在做之前发现不记得上课讲了什么,再翻书复习的构造函数
    2.第二题还有很多遗留问题,希望能在之后的学习过程中得到解答

    第四周课程总结

    1.实例化String对象:

    ①直接赋值:String name = "li";
    ②通过new方法:String name =new String ("li");

    2.String类中几种内容比较方式

    ①“==”
    ②重点:使用equals()
     String str = "hello";
                          String str1="world";  
                        if(str.equals(str1)) 
                          {  
                           System.out.println("相等"); 
                          }  
                          else
                          {
                           System.out.println("不相等");  
                          }
          运行结果:
              不相等
    

    2.String类的常用方法


    17.18可用来查找指定字符串

    19用来比较字符串内容

  • 相关阅读:
    dos
    admin package
    ant 调用系统环境变量
    idea6+tomcat5.5开发web程序
    VFloppy
    ant中classpath
    Velocity用户手册
    ant中 Tomcat的任务调用(包括deploy,undeploy,load,start,stop等)
    [转]aidl高级应用篇
    Android NDK开发环境安装(OK版)
  • 原文地址:https://www.cnblogs.com/LILI6/p/11559832.html
Copyright © 2011-2022 走看看