第四周课程总结

一、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数据类型(首字母大写)();

方法的调用也不熟练

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

最新文章

  1. 【初学者指南】在ASP.NET MVC 5中创建GridView
  2. 修改tomcat的端口
  3. 【BZOJ3224】Tyvj 1728 普通平衡树 Splay
  4. php注册审核显示
  5. 为什么要用Message Queue
  6. Java之iterator迭代器和iterable接口
  7. 用函数式的 Swift 实现图片转字符画的功能
  8. vi和vim编辑器
  9. MySQL PROFILE 跟踪语句各阶段性能开销
  10. Vue过渡状态
  11. Linux系统命令 3
  12. [Laravel] 16 - DB: Eloquent
  13. 用bayes公式进行机器学习的经典案例
  14. 制作jQuery文字提示插件
  15. delphi实现两个目录路径的链接
  16. Linux下socket通信和多线程
  17. C++使用初始化列表提高效率(转):
  18. pygame系列_箭刺Elephant游戏_源码下载
  19. sass初学入门笔记(一)
  20. ajax 请求数据的两种方法

热门文章

  1. 关于 Spring AOP (AspectJ) 你该知晓的一切 (转)
  2. 新版 Scrapy 中 sys.conf.settings 的替代方法
  3. PhpStorm 2017.3-2018.2 汉化包
  4. servlet和Struts2的线程安全性对比
  5. 关于jQuery获取不到动态添加的元素节点的问题
  6. uni-app导航栏配置
  7. 第98:svd原理
  8. C++有静态成员变量的类继承
  9. 一、Core授权(基于cookie)
  10. (转)MyBatis 一、二级缓存和自定义缓存