9/15-9/21 java学习总结(课堂及课后学习总结) &实验总结2
String类两种实例方法及区别
第一种方法是通过直接赋值的方式,另外一种方法是调用构造方法完成实例化。。
区别:第一种方法的话一个字符串被一个名称引用过后如果再有相同的字符串声明时,就不用再重新开辟空间。第二种方法的话每次引用字符串都必须要重新开辟空间。
StringBuffer类
String对象一经声明,便不能修改它的内容,修改的只是引用的地址;而StringBuffer对象是可以改变它的内容的
StringBuffer的4种初始化
- public StringBuffer()
- public StringBuffer(CharSequence seq)
- public StringBuffer(int capacity)
- public StringBuffer(String str)
String类操作例(查找单个字符)
获取字符串中的第i个字符方法charA(i)
char ch = str.charA(i);
foreach操作
foreach就是一种简化版的for语句,在使用数组的时候用foreach更简单便捷。
String类操作例(查找字符串index Of()函数)
查找字符串的四种方法
int indexOf(String str)
int indexOf(String str, int startIndex)
int lastIndexOf(String str, int startIndex)
int lastIndexOf(String str, int startIndex)
String类操作例(split切割字符串操作)
Java中,按某个字符分割字符串使用的是String对象的split()
方法,返回的是分割之后的String数组,值得注意的是分割符。
包
包及子包的定义,实际上是为了解决名字空间、名字冲突
它与类的继承没有关系。事实上,一个子类与其父类可以位于不同的包中。
包有两方面的含义 ,一是名字空间、存储路径(文件夹,二是可访问性(同一包中的各个类,默认情况下可互相访问)
数组
数组的定义:
数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。
数组的基本特点:
1. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
2. 其元素必须是相同类型,不允许出现混合类型。
3. 数组类型可以是任何数据类型,包括基本类型和引用类型。
4. 数组的元素在堆内存中被分配空间,并且是连续分配的
对象数组
对象数组的定义一般格式:类名+空格+数组名;数组名=new 类名[ ],这是声明数组,但需要注意的是这里仅仅定义了数组stu的元素,并且每个元素都是一个该类的对象。
import语句:
定义,如果将几个类存放在不同的包中,则在使用类的时候就必须通过import语句导入。
笔记总结
StringBuffer和String的互换
1.String转换为StringBuffer有两种方法:
(1)利用StringBuffer的构造方法:
public StringBuffer(String str)
(2)利用StringBuffer的append()方法:
public StringBuffer append(String str)
2.StringBuffer转换为String也有两种方法:
(1)利用StringBuffer的toString()方法:public String toString()
(2)利用String的构造方法:public String(StringBuffer buffer)
String类中的常用方法
1 public String(char[] value) 作用:直接将一个字符数组变为一个字符串;
2 public char[] toCharArray() 作用:将一个字符串变为字符数组;
3 public char charAt(int index) 作用:从一个字符串中取出指定位置的字符;
4 public byte[] getBytes() 作用:将一个字符串变成byte数组;
5 public int length() 作用:取得字符串的长度;
6 public int indexOf(String str) 作用:从头开始查找指定的字符串位置;
7 public int indexOf(String str,int fromIndex) 作用:从指定位置开始查找指定的字符串的位置;
8 public String trim() 作用:清除左右两端的空格;
9 public String substring(int beginIndex) 作用:从指定位置开始,一直取到尾进行字符串的截取;
10 public String substring(int begin,int end) 作用:指定截取字符串的开始点和结果点;
11 public String[] split(String regex) 作用:按照指定的字符串对字符串进行拆分;
12 public boolean andsWith(String suffix) 作用:判断是否以指定的字符串结尾;
13 public boolean equals(String str) 作用:判断两个字符串内容是否相等;
14 public boolean equalsIgnoreCase(String str) 作用:不区分大小写比较两个字符串是否相等;
实验二 Java简单类与对象
- 实验目的
- 掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
- 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;
- 理解static修饰付对类、类成员变量及类方法的影响。
- 实验内容
- 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
(1) 使用构造函数完成各属性的初始赋值
(2) 使用get…()和set…()的形式完成属性的访问及修改
(3) 提供计算面积的getArea()方法和计算周长的getLength()方法
import java.util.Scanner; class Rectangle{ private double width; private double height; private String color; 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(){ double area; area=getHeight()*getWidth(); return area; } public double getLength() { double length; length=2*(getHeight()+getWidth()); return length; } } public class blue { public static void main(String[] args) { Rectangle re=new Rectangle(6,8,"blue"); re.out(); System.out.println("面积:"+re.getArea()+"周长:"+re.getLength()); } }
发现了一个非常严重的问题,eclipse真tm好用,适合我这种小白,cmd所有的东西都要自动调,比如这次第一题如果用cmd的话,就要调整文件包,what fark?不就是调成xxxx.java吗?不清楚怎么弄,自己的eclipse没弄好,死活哪个java环境加不进去,然后用室友的运行了一下代码。
2.银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。
这个题,不会做。但是又一些想法,就是关于(银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名),应该是要用标识符把,就是用户输入姓名的时候,系统自动按规则生成一个标识,这个标识就像身份证一样,在银行系统里面标定这个标识就是这个客户,每个人的标识都是唯一的,比如表示要求长度11个字符,包括字符和数字,要写一个生成唯一标识的函数,用注册时间来应该会不容易重复,年月日几时几分几秒几毫秒+随机码。