第四周总结 & 实验报告(二)

第四周课程总结

一、String类

 

 

1.实例化

(1)直接赋值

public class Xxxx{
          public static void main(String args[]){
                     String a = "abcd";              //实例化String对象

                     System.out.println(a);          //输出
           }
      
}

(2)使用new关键词

public class Xxxx{
          public static void main(String args[]){
                     String a = new String("abcd");              //实例化String对象
                     System.out.println(a);                         //输出
           }
}

 

2.String 对象的内容比较

1)使用“==”比较

                进行数值的比较,即是用来进行地址值的比较

(2)使用equals()方法比较

             进行内容的比较

             使用方法:

              例如:str1.equals(str2); 

 

3.两种实例化方式的区别

(1)直接赋值

          String xxx = "字符串";

          只会开辟一块堆内存空间,并且会自动保存在对象池之中一共下次使用;

(2)构造方法

          String xxx = new String ("字符串");

           会开辟两块堆内存空间,其中有一块空间将成为垃圾,并且不会自动入池,但是用户可以使用intern()方法手工入池;

 

 

4.字符串内容不可改变

     

   可以使用StringBuffer类完成(第十三章)

 

5.常用方法

(1)字符串与字符数组的转换

 

String str1 = "hello";
char c[] = str1.toCharArray();

 

(2)取出指定位置字符

String str1 = "hello";
System.out.println("str1.charAt(下标)");        //取出第 下标+1 个字符

(3)字符串与byte数组的转换

String str1 = “hello”;
byte b[] = str1.getBytes();                             //将字符串变为byte数组
System.out.println(new String(b));                 //将全部byte数组变为字符串
System.out.println(new String(b,1,3));          //将部分byte数组变为字符串




执行结果:hello
        ell

 (4)取得一个字符串的长度

String str1 = "hello";
System.out.println(str1.length());

(5)查找一个指定的字符串是否存在

 

String str1 = "abcdefgh";
System.out.println(str1.indexOf("c"));             //查找到返回位置
System.out.println(str1.indexOf("c",3));          //查找到返回位置,从第四个开始查找
System.out.println(str1.indexOf("x"));            //没有找到返回-1

 

(6)去掉左右空格

String str1 = "         hello          ";
System.out.println(str1.trim());

(7)字符串截取

String str1 = "hello world";
System.out.println(str1.substring(6));
System.out.println(str1.substring(0,5));

(8)按照指定的字符串拆分字符串

String str1 = “hello world”;
String s[] = str1.split(" ");
for(int i;i<s.length;i++){
    System.out.println(s[i]);
}

(9)字符串的大小写转换

System.out.println("hello".toUpperCase());
System.out.println("HELLO".toLowerCase());

(10)判断是否以指定的字符串开头或结尾

String str1 = "HELLO";
String str2 = "HELLO**";
if(str1.startsWith("**")){
      Sytem.out.println("(**HELLO)以**开头");
}
if(str1.endsWith("**")){
      Sytem.out.println("(HELLO**)以**结尾");
}

(11)不区分大小写进行字符串比较

String str1 = "HELLO";
String str2 = "hello";
System.out.println("\"HELLO\"equals\"hello\""+str1.equals(str2));
System.out.println("\"HELLO\"equalsIgnoreCaseCase\"hello\""+str1.equalsIgnoreCase(str2));

(12)将一个指定的字符串,替换成其它的字符串

String str = "hello";
String newStr = str.replaceAll("l","x");
System.out.println(newStr);

 

二、对象数组

Person per[] = new Person[数字];
per[0] = new Person("内容");                //实例化元素
..........

 

 

实验报告(二)

实验二 Java简单类与对象

一、 实验目的

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

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

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

二、 实验内容

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

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

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

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

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

 

 

一、Rectangle类

1.实验源码

package rectangle;


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("面积:"+getArea()+"\n"+"周长:"+getLength());
        System.out.println("颜色:"+getColor());
    }
    
    
    public String getColor() {
        return color;
    }
    public void setColor(String x) {
        color=x;
    }
    public double getWidth() {
        return width;
    }
    public void setWidth(double n) {
        width=n;
    }
    public double getHeight() {
        return height;
    }
    public void setHeight(double a) {
        height=a;
    }
    
    
    public double getArea(){
        double area=getWidth()*getHeight();
        return area;
        
    }
    public double getLength(){
        double length=2*getWidth()+2*getHeight();
        return length;
    }
}





package rectangle;

public class Rectangle2 {
    public static void main(String[] args) {
        Rectangle tra=new Rectangle(10,30,"red");
        tra.tell();
    }

}

2.实验结果

 

二、Account类

1.实验源码

package account;

class Account {
    private String mark;
    private String name;
    private long day;
    private long password;
    private double balance;
    public Account(String mark,String name,long day,long password,double balance) {
        this.setMark(mark);
        this.setName(name);
        this.setDay(day);
        this.setPassword(password);
        this.setBalance(balance);
    }
    public Account(String mark,long password,double balance) {
        this.setMark(mark);
        this.setPassword(password);
        this.setBalance(balance);
    }
    
    public void tell() {
        System.out.println("标识:"+getMark()+"\n"+"姓名:"+getName()+"\n"+"开户日期:"+getDay()+"\n"+"初始密码:"+getPassword()+"\n"+"余额:"+getBalance());
    }
    public void tell2() {
        System.out.println("标识:"+getMark()+"\n"+"姓名:"+getName()+"\n"+"开户日期:"+getDay()+"\n"+"密码:"+getPassword()+"\n"+"余额:"+getBalance());
    }
    public String getMark() {
        return mark;
    }
    public void setMark(String m) {
        mark=m;
    }
    public String getName() {
        return name;
    }
    public void setName(String n) {
        name=n;
    }
    public long getDay() {
        return day;
    }
    public void setDay(long d) {
        day=d;
    }
    public long getPassword() {
        return password;
    }
    public void setPassword(long p) {
        password=p;
    }
    public double getBalance() {
        return balance;
    }
    public void setBalance(double b) {
        balance=b;
    }
}
package account;

import java.util.*;
import java.util.Scanner;
public class Account1 {
    
    public static void main(String[] args) {
        double b=0.0d;
        Account acc=new Account("xh123456789",123456,0);
        acc.tell();
        Scanner sc = new Scanner(System.in);
         Scanner out = new Scanner(System.in);
         System.out.print("请输入开户姓名:");
         String n =null;
         n=sc.nextLine();
         
         System.out.print("请设置密码:");
         long p = out.nextLong();
         System.out.print("请输入日期:");
         long d = out.nextLong();
         System.out.println("\n");
         Account acc1=new Account("xh123456789",n,d,p,b);
        acc1.tell2();
        System.out.println("\n");
        int z=7;
        System.out.println("存款:1"+"\t"+"取款:2"+"\t"+"查询余额:3"+"\n"+"修改密码:4"+"\t"+"查询标识:5"+"\t"+"查询姓名:6");
        while(z!=0) {
         
          z = out.nextInt();
         if(z==1) {
         System.out.print("存入的金额:");
         double a = out.nextDouble();
         b=b+a;
         System.out.print("存入:"+a);
         }
         if(z==2) {
         System.out.print("取出的金额:");
         double r = out.nextDouble();
         b=b-r;
         System.out.print("取出:"+r);
         }
         if(z==3) {System.out.print("余额:"+b);}
         if(z==4) {
             System.out.print("请修改密码:");
              p = out.nextLong();
              acc1=new Account("xh123456789",n,d,p,b);
              acc1.tell2();
         }
         if(z==5) {
             
             System.out.println("标识:"+"xh123456789");
         }
         if(z==6) {
             System.out.println("姓名:"+n);
             
         }
        }
        
        


    }
}

2.实验结果

 

三、总结

输入需要加 import java.util.*;

对于内容的输入的语句不太熟练,字符串的输入和数字的又不一样

输入的基本语句:

数据类型   a = out.next数据类型(首字母大写)();

方法的调用也不熟练

第二题写的怪怪的。。。。

 

posted @ 2019-09-19 22:27  林衍  阅读(244)  评论(2编辑  收藏  举报