zoukankan      html  css  js  c++  java
  • 第四周课程总结

    实验二java简单类与对象

    一实验目的

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

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

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

    实验内容

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

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

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

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

    实验代码

    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 void tell(){
            System.out.println("宽:"+width+"  "+"高:"+height+"  "+"颜色:"+color);
        }
        public double getWidth(){
            return width;
        }
        public double getHeight(){
            return height;
        }
        public String getColor(){
            return color;
        }
        public void setWidth(double width){
            this.width=width;
        }
        public void setHeight(double height){
            this.height=height;
        }
        public void setColor(String color) {
            this.color=color;
        }
        public void getArea(){
            System.out.println("面积为:"+(width*height));
        }
        public void getLength(){
            System.out.println("周长为:"+(width+height)*2);
        }
    
    }
    public class juxing{
         public static void main(String[] args){
             Rectangle per=new Rectangle(5,10,"红色");
             per.tell();
             per.getArea();
             per.getLength();
         }
    }
    

    实验结果

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

    实验代码

    import java.util.Date;
    import java.util.Scanner;
    class Account{
        private String id,name,password;
        private Date date;
        private double balance;
        public Account() {
    }
    public Account(String id,String name,double balance) {
        this.setId(id);
        this.setName(name);
        this.date=new Date();
        this.password="123456";
        this.setBalance(balance);
    }
    public String getId() {
        return id;
    }
    public String getName() {
        return name;
    }
    public Date getDate() {
        return date;
    }
    public String getPassword() {
        return password;
    }
    public double getBalance() {
        return balance;
    }
    public void setId(String i) {
        id=i;
    }
    public void setName(String n) {
        name=n;
    }
    public void setDate(Date d) {
        date=d;
    }
    public void setPassword(String p) {
        password=p;
    }
    public void setBalance(double b) {
        balance=b;
    }
    public void cunqian(double money) {
        this.balance=this.balance+money;
    }
    public void quqian(double money) {
        this.balance=this.balance-money;
    }
    public Date date() {
        return date;
    }
    public void changepassword() {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入新密码:");
        String password=sc.nextLine();
    }
    public static void main(String[] args) {
        Account a=new Account("010114","唐嘉诚",1000);
        a.cunqian(1000);
        a.quqian(500);
        a.changepassword();
        a.date();
        System.out.println("账户标识:"+a.getId());
        System.out.println("姓名:"+a.getName());
        System.out.println("开户日期:"+a.date());
        System.out.println("当前余额:"+a.getBalance());
    }
    }
    

    实验截图

    总结

    一:对象数组
    1.对象数组的定义,所谓的对象数组,就是指包含了一组相关的对象,而且数组里面的每一个对象都是null值,所以在使用时数组中的每一个对象都必须分别进行实例化操作。
    2.对象数组的声明,类 对象数组名称[ ] = new 类[数组长度];。
    3.对象数组的初始化,与数组初始化的方式一样,对象数组也分为静态初始化和动态初始化。

    二:String类
    1.String类的两种实例化方法
    (1)直接赋值:如String name = "lichen";。
    (2)利用new开辟一个新的空间(实际上就是直接调用String类中的构造方法):如String name = new String("lichen");。

    2.String类的比较方法
    (1)通过使用“”进行内容的比较,但“”并不能适用于字符串内容的比较,因为字符串的内容看似相等,但其实地址不同,而“”主要的功能是进行数值的相等判断的,如果用在了String对象上表示的是内存地址数值的比较,所以“”就不能用于比较字符串内容啦。
    (2)使用equals()方法对String的内容进行比较,equals()方法是String提供的一个方法,此方法专门负责进行字符串内容的比较,所以字符串内容比较是用equals()方法进行判断的。

    3.String类两种对象实例化方式的区别
    (1)直接赋值,对于这个代码String str1="lichen";实际上就是把一个在堆中开辟好的堆内存空间的使用权给了str1这个对象,使用这种方法还有另外一个好处,那就是,如果一个字符串已经被一个名称所引用,则以后再有相同的字符串声明的时候,不会再重新开辟空间,并且会自动保存在对象池之中以供下次重复使用。
    (2)使用new String()的方式实例化String对象,上面说过一个字符串就是一个String类的匿名对象,所以使用new关键词的话,不管如何都会再开辟一个新的空间,但空间的内容不变,所以实际上开辟了两个内存空间,但真正使用的只是一个使用关键字new开辟的空间,另一个是垃圾空间。

    4.String类的使用特点

    字符串的内容一旦声明则不可改变。

    5.String类的常用方法
    (1)toCharrArray(),可以使字符串变成一个字符数组。
    (2)charAt(),取出字符串指定位置的字符。
    (3)indexOf(),可以返回指定的字符串的位置,如果不存在则返回-1。
    (4)substring(),从指定位置截取到字符串结尾。
    (5)startsWith(),判断字符串是否以指定的内容开头。
    (6)endsWith(),判断字符串是否以指定的内容结尾。
    (7)replaceAll(),可以将字符串的指定内容进行替换,等。

    三:包的概念

    1.包的概念,包是在使用多个类或接口时,为了避免名称重复而采用的一种措施。如果使用,直接在程序中加入package关键字即可。
    2.包的定义,package 包名称.字包名称;。
    3.import语句
    (1)定义,如果将几个类存放在不同的包中,则在使用类的时候就必须通过import语句导入。
    (2)格式,import 包名称.子包名称.类名称;(手工导入所需要的类),import 包名称.子包名称.*;(由JVM自动加载所需要的类)。

    4.系统常见包

    下面简单介绍几个
    (1)java.lang,此包为基本的包,像String这样的类就都保存在此包之中。
    (2)java.util,此包为工具包,一些常用的类库、日期操作等都在此包之中。
    (3)java.io,输入、输出处理

  • 相关阅读:
    java.util.concurrent.atomic 包详解
    SpringBoot RESTful 应用中的异常处理小结
    Spring 核心框架体系结构
    Java 的静态代理 动态代理(JDK和cglib)
    Spring5:@Autowired注解、@Resource注解和@Service注解
    offsetWidth/offsetHeight,clientWidth/clientHeight与scrollWidth/scrollHeight的区别
    一个小技能
    在chrome console添加jQuery支持
    如和判断两个浮点数是否相等
    Object.create() vs new SomeFunction() in javascript
  • 原文地址:https://www.cnblogs.com/tangjiacheng/p/11553694.html
Copyright © 2011-2022 走看看