码迷,mamicode.com
首页 > 其他好文 > 详细

第二次试验报告与第四周总结

时间:2019-09-20 22:49:54      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:运算符   string类   start   常用方法   构造   ret   余额   怎么   char   

试验报告

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+"\n" +"姓名:" + ac.name+"\n" + "密码:" + 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):按照指定符号分割字符串

第二次试验报告与第四周总结

标签:运算符   string类   start   常用方法   构造   ret   余额   怎么   char   

原文地址:https://www.cnblogs.com/xudo/p/11560125.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!