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

    课程总结

    我就总结一下老师上课讲的一些知识点,分点总结一下:
    1.三目运算符:
    ?:组成。例如max=x>y?x:y

    相当于if-else语句吧,若满足条件的话就输出前面那个x。
    2.构造方法:首先是构造方法的定义格式

       class 类名称{
              访问权限 类名称(类型1 参数1,类型2 参数2,.....){
                  程序语句;
                  其它            //切记构造方法没有返回值
               }
    }
    

    注:程序一般会自动生成一个构造方法
    重载:构造方法也能够重载,但是要保持构造方法的名称本身要求与类名称保持一致,即使得每个构造方法的参数类型或者参数个数不同,就能实现重载。
    注意:对构造方法进行重载时,所有的重载方法按照参数的个数由多到少或者由少到多。即下面这样:
    匿名对象:没有明确给出对象的名字,而且它只在堆内存中开辟空间,不存在栈内存中。
    3.String类

    用Sring声明的时候首字母要大写。
    String有两种赋值方法:一是直接赋值
    二是调用String类中的构造方法:
    老师上课做过的一个实验就是得出“==”是用来进行地址值比较的。如果要判断两个字符串的内容是否相等的话就要用到String中专门提供的方法:public boolean equals(String str)。注:equals()方法是区分大小写的。。且equals()在相等的时候返回true,不等的时候返回false。
    String类声明的字符串不能改变,见下图:
    String还有很多类,具体就不一一总结了。
    4.static关键字(静态属性或全局属性)
    就是用它声明的属性便是公共属性,就是给整个程序共享。
    用它声明的方法的话,也可以用其类名称直接调用,全局共享。
    5.理解一下main方法
    以下图片详见:

    实验二 Java简单类与对象

    一、实验目的

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

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

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

    二、实验内容

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

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

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

    (3) 提供计算面积的getArea()方法和计算周长的getLength()方法
    实验结果:

    实验代码:

    public class Rectangle {
        private double height;
        private double width;
        private String color;
    
        public Rectangle(double height, double width, String color) {
            this.height = height;
            this.width = width;
            this.color = color;
        }
    
        public double getHeight() {
            return height;
        }
    
        public void setHeight(double height) {
            this.height = height;
        }
    
        public double getWidth() {
            return width;
        }
    
        public void setWidth(double width) {
            this.width = width;
        }
    
        public String getColor() {
            return color;
        }
    
        public void setColor(String color) {
            this.color = color;
        }
    
        public double getArea(){
            return height*width;
    
        }
        public double getLength(){
           return height*2+width*2;
    
        }
    
    }
    public class Data {
        public static void main(String[] args) {
            Rectangle rectangle=new Rectangle(10,20,"yellow");
            System.out.println(rectangle.getArea());
            System.out.println(rectangle.getLength());
        }
    }
    

    实验总结:这个题目我大多是照着书上那个例题来做的,然后那个主类没有搞,就一直无法编译,然后就是没有创造main主类。后面就成功了。其实这个题目还是可以的,就是出现了一些细节上的小问题。
    2. 银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。
    实验结果:


    实验代码:

    import java.util.*;
    public class Account {
        private String name;    //姓名
        private String id;          //账号标识符
        private String dataopend;   //日期
        private String password;      //密码
        private double balance;         //余额
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getDataopend() {
            return dataopend;
        }
    
        public void setDataopend(String dataopend) {
            this.dataopend = dataopend;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public double getBalance() {
            return balance;
        }
    
        public void setBalance(double balance) {
            this.balance = balance;
        }
    
        public void account() {                           //这里进行开户的类方法
            System.out.println("请输入您的名字:");
              Scanner s = new Scanner(System.in);      
                String name = s.nextLine();           //输入自己的名字               
                   System.out.println("开户成功");
            setId("0415 2846 3124 5742 652");       //自己的卡号
                   System.out.println("您的账号为:" + getId());
    
            Date dat = new Date();      
            setDataopend(dat.toString());          //取当前日期
            System.out.println("您的开户日期为:" + getDataopend());
    
            setPassword("123456");
            System.out.println("您的初始密码为:" + getPassword());
    
            setBalance(0);                                          //初始余额为0;
            System.out.println("您当前的余额为:" + getBalance());
        }
    
        public void cun() {                                 //存款
            Scanner s = new Scanner(System.in);
            System.out.println("存款");
            System.out.println("请输入存款金额:");
            setBalance(s.nextDouble() + getBalance());      //录入金额
            System.out.println("交易成功!当前余额为:" + getBalance());
        }
    
        public void qu() {                 //取款
            Scanner s = new Scanner(System.in);
            System.out.println("取款");
            System.out.println("请输入取款金额:");
            double q = s.nextDouble();
            if (q > getBalance()) {        //可能取得金额大于所存金额
                System.out.println("当前余额不足");
            } else {
                setBalance(getBalance() - q);
                System.out.println("交易成功!当前余额为:" + getBalance());        //拿已有金额减去所取金额
            }
        }
    
        public void 变更密码() {
            Scanner ss = new Scanner(System.in);
            System.out.println("请输入新密码");
            String x = ss.next();
            setPassword(x);             //输入新密码
            System.out.println("更改成功!");
        }
    
       
    import java.util.Scanner;
    
    public class Kaishigongzuo {             //这里开辟了一个main方法,以保证程序的运行
        public static void main(String[] args){
            System.out.println("WELCOME you!!!!");
            Account per=new Account();
            Scanner a=new Scanner(System.in);
            per.account();
            System.out.println("请选择服务项目:1.存款   2.取款   3.变更密码     ");
            int x=a.nextInt();
            switch(x){
                case 1:per.cun();break;
                case 2:per.qu();break;
                case 3:per.变更密码();break;
            }
            System.out.println("操作完成,按任意键退出,谢谢!");
        }
    }
    

    其实这个题目我一开始好多都不会的,但是我问了同学,而且也查阅了好多资料。比如代码开头那个import java.util.;假如你没这句话的话
    如果你要用java.util包中的类Scanner的话你就需要这样使用
    java.util.Scanner sc = new java.util.Scanner();而import java.util.
    ;代表你导入了java.util包中的所有类,,这样的话你使用
    Scanner就没那么麻烦了Scanner sc = new Scanner();
    这样就能很方便的完成输入了,开始的时候和第一题的模式一样的,基本没问题,其实题目的前面一部分我没怎么看懂的,但是题目有一句“定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。”我就按着这个步骤一步一步来,但是在取款的时候没有考虑到会有余额不足的情况,还有查询不知道怎么去做。最后那个主函数,我做了好久,就是per.account();这一步没有加上去,然后一直报错,还有那个switch语句后面的那个存款也没有加括号,后面才记的老师说过,方法后要加()才对。总之花了我四五个小时才把这个题目搞出来的,没有百度和同学们的帮助,估计就搞了一下构造方法就不会了吧!

    自我总结

    我感觉这周真的挺忙的,还好在老师刚布置作业的时候我就已经写了一些了,下周一定会乖乖的按时间完成,上周的忘记自我总结了,而且格式也有点问题,那个代码还要给出解释,我也没给出,所以得了一个c的评分,但是我确实真的是很用心的去把每个代码敲出来了,还翻了一下上学期C语言的书籍,反正是花了蛮多时间的,以后的作业一定会好好参照那些评分为a的同学的作业,努力向他们看齐,争取让自己做得更好,加油!!!!!

  • 相关阅读:
    2018.10.10python homework
    2018.10.10python学习第十六天part3
    2018.10.10python学习第十六天part2
    2018.10.10python学习第十六天part1
    2018.09.28python学习第十三天part3
    2018.09.28python学习第十三天part2
    2018.09.28python学习第十三天part1
    当不搞技术好几年后,又回来了,忽然很亲切
    福大软工 · BETA 版冲刺前准备(团队)
    事后诸葛亮
  • 原文地址:https://www.cnblogs.com/2001guqiu/p/11533231.html
Copyright © 2011-2022 走看看