第四周总结 and 实验二

一、课堂笔记总览
 
 

1.String类两种实例方法
区别
String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");
System.out.println(str1 == str2);
System.out.println(str1 == str3);
output:
    true
    false
 
 
String str1 = “hello”;会将字符串数据放入对象池,下次再实例化该对象时可以直接使用
用new进行实例化,该字符串常量不会保存到对象池(可以使用intern()操作入池),另外还会产生额外垃圾空间,不建议使用。
 
 
 

StringBuffer类
String类是字符串常量,是不可更改的常量。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。
 
 
 
 
newString  
凡是new 的都在在堆中开辟内存的
rt 你定义的是一个静态一维数组 里面是空的(因为你带了{ } 号)
不过也有内存 他的内存空间是在堆中的
String str[ ] = new String[10]; 像这样 是一个 动态的
它在堆中开辟了10 个空间 且他们的地址是连续的 空间大小都是一致的
 

String类操作例(查找单个字符
在String中使用indexOf()方法,可以返回指定的字符串的位置,如果不存在则返回-1.
public class StringAPIDemo05{
public  static void main(String[]args){
    String str1 ="abcdefgsjh";
      System.out.println(str1.indexOf("c"));
    System.out.println(str1.indexOf("c",3));
     System.out.println(str1.indexOf("x"));
}
}
 
 
程序输出结果
2
-1            //没有查到
-1
 
 
 
 
foreach操作
oreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组、集合时, foreach 更简单便捷。从英文字面意思理解 foreach 也就是“ for 每一个”的意思,当使用foreach循环基本类型时变量时不能修改集合中的元素的值,遍历对象时可以修改对象的属性的值,但是不能修改对象的引用
修改基本类型的值(原集合中的值没有变化,因为str是集合中变量的一个副本)
 
 
 
 
String类操作例(查找字符串indexOf()函数
在String中使用indexOf()方法,可以返回指定的字符串的位置,如果不存在则返回-1.
public class StringAPIDemo05{
public  static void main(String[]args){
    String str 1 ="abcdefgsjh";
      System.out.println(str1.indexof("c"));
    System.out.println(str1.indexof("c",3));
     System.out.println(str1.indexof("x"));
}
}
 
 
 

String类操作例(split切割字符串操作)

String str="This is a test of Java" ;
int count=0;
String[] s=str .split("");
for(String e:s){
     if(e.equals("is")){
            count++ ;
     } 
}
System.out.printIn(count);
 
 
 
 
 
使用replace删除字符串
public class Test{
 public static void mian(String[]args){
String str ="This is a test of java";
str=str.replace("  test", "");
System.out.println(str);
}
}

 

  • 实验目的
  • 掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
  • 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;
  • 理解static修饰付对类、类成员变量及类方法的影响。
  • 实验内容
  1. 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:

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

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

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

额等信息。

1.实验源码

package Rextangle;
public class Rextangle { private String color;                                                                                                                                    书5.13 构造方法重载
private double width;                              //private封装属性 width
private double height;                            //private封装属性  height
public void setColor(String color) {
    this.color=color;                                   //this调用本类属性color
}
public void setWidth(double width) {                        //定义构造方法为width赋值
    this.width=width;
}
public void setHeight(double height)  {              //定义构造方法为height赋值
    this.height=height;
}
public String getColor() {                            //取得color
    return color;
}
public double getWidth() {                      //取得 width
    return width;
}
public double getHeight() {                             //取得高
    return height;
}
public  double getArea() {                       //取得面积
    return width*height;
}
public double getLength() {
    return 2*(width+height);   
}
    public static void main(String args[]) {
        Rextangle r=new Rextangle();                                       //我们调用一个参数的构造
        r.setWidth(30);                                                    //s输入Rextangle矩形的宽
        r.setHeight(22);                                             //s输入Rextangle矩形的高
        System.out.println(r.getArea());
        System.out.println(r.getLength());                      输出周长getLength
        }
}
 
实验
结果
 
 
  1. 银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。

 

posted on 2019-09-17 18:45  莫念初  阅读(234)  评论(0编辑  收藏  举报

导航