zoukankan      html  css  js  c++  java
  • 第二次试验报告与第四周总结

    试验报告

    1.计算面积和周长

    源代码:

    package text;
    
    public class Rectangle {           
    	private double width;    //声明属性
    	private double height;
    	private String color;
    	
    public  Rectangle(double width,double height,String color) {
    	this.setWidth(width);
    	this.setHeight(height);
    	this.setColor(color);
    	
    }
    	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 width*height;
    	}
    	public double getLength() {						//周长
    		 return (width+height)*2;
    	}
    	
    	public static void main(String agrs[]) {
    		   Rectangle rec1 = new Rectangle(30,40,"黑色");
               System.out.println("长:"+  rec1.width+"  宽  "+  rec1.height+"  颜色: "+  rec1.color);
               System.out.print("面积:" + rec1.getArea() + "   周长:" + rec1.getLength());
    	}
    }
    
    

    运行截图:

    遇到的问题:在给对象赋值的时候,出现了问题,颜色一直输出null,检查后发现,少了颜色的set方法,还有在使用点运算符的时候,出现调用不了的问题,调用方法,一直没有加括号,所以错误,以后还是要细心。

    感想:虽然书上有一个差不多的题目,都是我没有看书,所以在做出来之后,还是感觉到非常的有信心,构造方法不难,都是要和普通方法一起运用的话,就非常有难度了,知识的逻辑性很强,还是没有区分普通方法与构造方法有什么区别,觉得差不多,都是又不一样,这让我很头疼,还是要多做题目,加强训练。

    2.银行开户;

    源代码:

    package text;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Scanner;
    
    
    public class Account {
    	private String name;	//姓名
    	private String date; 	//开户日期	
    	private String code;	//密码
    	private double save;	//存钱金额
    	private double balance;	//余额
    	private String bsf;		//标识符
    	private double yc;		//预存
    	
    	public Account(String name,String code,double yc,double save){
    		this.setName(name);
    		this.setCode(code);
    		this.setSave(save);				//构造方法
    		this.setYc(yc);
    		
    		Date now = new Date();
    		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");			//开户日期生成
    		 date = dateFormat.format(now);    											
    		 
    		SimpleDateFormat dateFormat2 = new SimpleDateFormat("mmmddhhssmm");					//标识符生成
    		 bsf = dateFormat2.format(now);
    		 
    	}
    	//给出set与get方法
    	public void setName(String name) {
    		this.name=name;
    	}
    	public String getName(){
    		return name;
    	}
    	public void setCode(String code) {
    		this.code=code;
    	}
    	public String getCode() {
    		return code;
    	}
    	public void setSave(double save) {
    		this.save=save;
    	}
    	
    	public void setYc(double yc) {
    		this.yc=yc;
    	}
    	
    	public double getBalance() {
    	return balance=yc+save;	
    	}
    	
    	public double getYc() {
    		return yc;
    	}
      
    	//主方法
    	public static void main(String[] agrs) {
    		Scanner sc = new Scanner(System.in);
    		String c = sc.nextLine();   		 //输入姓名
    		String b = sc.nextLine();			//设置密码
    		double n =sc.nextDouble();			//预存金额	
    		double m = sc.nextDouble();			//本次存钱
    		
    		
    	Account ac = new Account(c,b,n,m);			//构造对象
    	System.out.println( "开户日期:" + ac.date+"
    " +"姓名:" + ac.name+"
    " + "密码:" + ac.code );
    	System.out.println("预存为:"+ ac.yc);
    	System.out.println("本次存入金额为:" + ac.save);
    	System.out.println("余额:" + ac.getBalance() );
    	System.out.print("标识符 " + ac.bsf);
    	}
    }
    
    
    

    运行截图:

    遇到的问题:在设置开户日期的时候,不会,然后百度找到了读取当前日期的方法,format方法,然后就可以读取当前日期,然后想利用这个日期做为标识符,由于没有看懂这个方法,纠结了好久,最后明白了,在new一个新的对象就行了,都是还是不明白,为什么俩个对象,赋的是同一个now,都是表示当前时间?应该是这样吧,在设置存钱的时候,因为开始没有搞清楚普通方法与构造方法的区别,所以就都在主方法里面进行输入了,后来明白了可以使用普通方法进行提示输入,都是知道的太晚了,所以就先提交用直接输入的吧,还有密码也只能进行覆盖,也没有想到用新学的Stringbuffer去进行修改,由于时间问题,所以就只能在后面进行修改了,不过这个题目需要明白的知识点,我想我应该是清楚了。

    感想:学以致用,和知道,真的是一个天上一个地下,差的不是一点,还是经验太少了,在听取别人的想法之后,恍然大悟,其实挺简单的一种思路,自己却是怎么样都想不到,有一种思维自我封闭的感觉,这不是一个好消息,还是要多加练习。

    学习总结:这一个礼拜主要是学习了String类。

    String(字符串常量)概述

    在API中是这样描述:

    String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。

    字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。使用Stringbuffer是可以进行修改的。

    创建字符串对象两种方式的区别

    直接赋值方式创建对象

    直接赋值方式创建对象是在方法区的常量池

    String str="hello";//直接赋值的方式
    

    通过构造方法创建字符串对象

    通过构造方法创建字符串对象是在堆内存

    String str=new String("hello");//实例化的方式
    

    两种实例化方式的区别

    1)直接赋值(String str = "hello"):只开辟一块堆内存空间,并且会自动入池,不会产生垃圾。

    2)构造方法(String str= new String("hello");):会开辟两块堆内存空间,其中一块堆内存会变成垃圾被系统回收,而且不能够自动入池,需要通过public String intern();方法进行手工入池。

    String类的常用方法

    int length():获取字符串的长度,其实也就是字符个数
    char charAt(int index):获取指定索引处的字符
    int indexOf(String str):获取str在字符串对象中第一次出现的索引
    String substring(int start):从start开始截取字符串
    String substring(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end
    char[] toCharArray():把字符串转换为字符数组
    String toLowerCase():把字符串转换为小写字符串
    String toUpperCase():把字符串转换为大写字符串
    String trim():去除字符串两端空格
    String[] split(String str):按照指定符号分割字符串
    
    
  • 相关阅读:
    L2 L3 L4
    C 语言assert使用
    VIM 命令收藏
    C++继承实例
    关于 WinScp 的一点使用经验
    Boa服务器移植
    Android 去掉标题全屏显示
    sys下gpio操作
    linux下 XGCOM串口助手的安装
    linux中inittab文件详解
  • 原文地址:https://www.cnblogs.com/xudo/p/11560125.html
Copyright © 2011-2022 走看看