Object Scanner String
一丶Object类(所有类的根父类)
构造方法:Object();
1、toString()方法:返回该对象的字符串表示。
1)子类没有重写之前,访问其toString()方法相当于Sysyem.out.println(对象名);
打印出来:打印出来的是地址值:包名.类名@16进制数据:地址值
2)源码分析: public String toString(){
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
getClass()方法:返回的当前正在运行的类;
getName:返回的是全路径名称,是以String字符串形式显示出来
//getClass().getName();访问的就是类名
hashCode()方法:返回该对象的哈希值。
希码值:是通过哈希表(Hashtable)里面的哈希算法算出来的,可以理解为地址值(整数)
@:地址标记
Integer.toHexString(hashCode()):返回一个整数的16进制数据
3)方法重写:开发中尽量所有类都要重写toString()方法
写一个类的时候,定义完必要的成员变量,在适当的情况重写Object类的toString()方法;
在eclipse中无需直接手动添加重写toString()方法同set()/get()方法一样,eclipse中提供了自动添加重写toString方法
重写后再次调用toString()方法
打印出来: 类名 [成员变量1 = xxx, 成员变量2 = xxx]
2、equals(Object obj)方法:判断obj这个对象与当前对象是否“相等”
1)子类没有重写之前,默认的比较的是地址值,返回的是boolean类型false/true。
2)源码: public boolean equals(Object obj) {
return (this == obj);
}
3)方法重写:比较两个对象中的内容是否相同,就需要在其子类中去重写equals()方法!
eclipse中同样提供了equals的方法重写 egg:
@Override //成员方法 name,age
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass()) //if(!(obj instanceof Student))
return false;
Student other = (Student) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!this.name.equals(other.name))
return false;
return true;
}
说明:对象名 instanceof 类名 判断该对象是否是该类的实例化。
重写了equals(Object obj)方法后,比较的便不是地址值,只要obj是该类的一个实例,并且其成员变量值相同,便返回true。
3、clone()方法:创建并返回此对象的一个副本,也就是复制功能执行特定的复制操作。
1)方法重写:要重写clone()方法,其类必须实现Cloneable接口
@Override //如果此对象的类不能实现接口Cloneable,则会抛出 CloneNotSupportedException异常
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
2)clone方法的使用:protected Object clone()返回的是Object类型的一个对象
需要强转成当前类类型使用 egg;Teacher t2 = (Teacher)t1.clone();
t2 就是 t 复制的副本
二、Scanner类(获取用户的键盘输入)
1、构造方法:public Scanner(InputStream source)
2、常用方法: 1)public int nextInt()
返回键盘录入的int类型的值
2)public String nextLine()
返回键盘录入的String类型的值
3、Scanner类的使用:
1)不需要继承,只需导包即可:import java.util.Scanner;
2)创建Scanner类的对象:Scanner s = new Scanner(System.in);
3)显示的提示使用键盘录入:System.out.println("所要录入的什么东西");
4)获取键盘录入的值:String str = s.nextLine();
int i = s.nextInt();
注意:创建一个对象可以多此获取键盘录入的值,但如果先获取到int类型的值再获取String类型的值,就获取不到了,需要重新创建对象。
三、String类(Java程序中的所有字符串字都作为此类的实例实现)
1、构造方法: public String() //无参构造
public String(byte[] bytes) //参数是byte类型的数组,将该数组转换为字符串类型
public String(byte[] bytes,int offset,int length) //参数 byte类型的数组bytes,从第offset个开始,长度为length
public String(char[] value) //参数是cher类型的数组,将该数组转换为字符串类型
public String(char[] value,int offset,int count)
public String(String original) //相当与 String s = "(String original)";
2、内存分配:在方法区内有一个常量池区域,专门存放字符串,并且程序中所有出现的字符串都会存放在次常量池中
所以字符串一但被赋值,其值不可改变
egg:字符串相加
字符串变量相加,先开辟空间,再相加
字符串常量相加,先相加,然后在常量池中找是否有这个值,有就直接返回其地址值,没有再在常量池中创建
public class StringDemo {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "world";
String s3 = "helloworld";
System.out.println(s3 == s1 + s2);// false
System.out.println(s3.equals((s1 + s2)));//true
System.out.println(s3 == "hello" + "world");///true
System.out.println(s3.equals("hello" + "world"));//true
}
}
3、常用方法——判断功能
boolean equals(Object obj) //String类自己已经重写了equals方法,所以判断两个字符串是否相同;
boolean equalsIgnoreCase(String str) //判断该字符串与 String str是否相同 不考虑大小写;
boolean contains(String str) //判断该字符串是否包含 String str;
boolean startsWith(String str) //判断该字符串是否以 String str 开始;
boolean endsWith(String str) //判断该字符串是否以 String str 结束;
boolean isEmpty() //判断该字符串是否为空;
String s = null; 空对象,根本没法调用方法 与 String s = ""; 不同
4、常用方法——获取功能
int length() //获取该字符串的长度,注意与数组中数组长度区分 s.length()/i.length;
char charAt(int index) //获取该字符串第 int index 个字符;
int indexOf(int ch) //获取该字符串 第一次出现 int ch 字符的索引;若没有返回-1;
int indexOf(String str) //获取该字符串 第一次出现 String str 字符串的索引;
int indexOf(int ch,int fromIndex) //获取该字符串 从第 int formIndex 个开始第一次出现的 int ch 字符的索引;
int indexOf(String str,int fromIndex) //获取该字符串 从第 int formIndex 个开始第一次出现的 String str 字符串的索引;
String substring(int start) //获取从第 int start 个开始到结束 这个新的字符串;
String substring(int start,int end) //获取从第 int start 个开始到第 int end 个结束,这个新的字符串; 包左不包右;
5、常用方法——转换功能
byte[] getBytes() //将该字符串转换为 byte[] 数组;
char[] toCharArray() //将该字符串转换为 char[] 数组;
static String valueOf(char[] chs) //将 char [] chs 转换为 字符串;
static String valueOf(int i) //将 int i 转换为 字符串;
String toLowerCase() //将该字符串的所有字母转换为小写字母;
String toUpperCase() //将该字符串的所有字母转换为大写字母;
String concat(String str) //将 String str 拼接在该字符串的后面;
6、常用方法——其他方法
替换功能
String replace(char old,char new) //将 char old 改为 char new,并返回 new;
String replace(String old,String new) //将 String old 改为 String new,并返回 new;
去除字符串两空格
String trim() //去除当前字符串中首尾中出现的空格,并返回;
按字典顺序比较两个字符串
int compareTo(String str) //若该字符串在String str之前,则返回负整数;若之后,返回正整数;若相等,返回0
int compareToIgnoreCase(String str) //不考虑大小写
常用类(一)
时间: 2024-10-24 11:02:01
常用类(一)的相关文章
QT开发(二十七)——QT常用类(一)
QT开发(二十七)--QT常用类(一) 一.QString 1.QString简介 QString提供了Unicode编码的字符串,使用隐式共享技术来节省内存和不必要的数据拷贝,不必考虑跨平台的兼容性. QString类成员函数中除了 ascii().latin1().utf8().local8Bit()函数,其他所有的函数都是可重入的. 2.QString成员函数 QString::QString ( const QChar * unicode, int size ) QString::QSt
常用类
常用类 1.Java.util.Locale Java.util.Locale类是区域描述类,用来描述当前区域是哪个区域的. 怎么创建一个区域? //直接用类定义的常量来得到(能得到绝大多数有名的国家的语言和国家名,但朝鲜这样的小国家就只能自己用下面的方法定义了). 1.Locale lo=Locale.CHINA 2.Locale lo=new Locale("朝鲜语","朝鲜")//自己定义个区域的语言和国家名字. 两个常用的方法: 1.获得地区国家: //用当
第七章:常用类
第七章:常用类 包装类 java中有8中基本类型,对应有八种包装类作用:包装类中封装了该类型常用的属性和方法,以方便操作.byte---->Byteshort--->Shortint--->Integerlong---->Longfloat---->Floatdouble---->Doublechar---->Characterboolean---->Boolean装箱:将基本数据类型转换成包装类,经常通过构造方法完成.Integer i = new Int
异常处理、常用类
Exception Thowable分为Error.Exception RuntimeException 非检查异常,可以不用强制捕获 捕获异常 try{ 可能出现异常的代码 } catch(Exception e1){ 捕获块 } catch(Exception e2){ 捕获块 } catch(Exception e3){ 捕获块 } ......... catch(Exception en){ 捕获块 } finally{ 不管如何都会执行,一般放入资源关闭. } throws关键字 抛出
java基础教程-常用类(四)
四.常用类 4.1字符串相关的类(String StringBuffer) 4.1.1String类 4.1.2StringBuffer类(代表可变的) 解释一下可变和不可变 String s1 = “hello”; String s2 = “world”; s1+=s2; 实际上又开辟了一块内存,将hello和world copy进去,s1指向新的内存 而StringBuffer只是在s1后面增加了一块内存,把world加上,不需要copy String与StringBuffer只有这一定
2015_1_28_IO与常用类
/*日志名格式 年_月_日_内容 如2015_1_28_IO与常用类*/ ************************************************************************************************************************************************************** 日期:2015年1月 28日 主题:IO .常用类 相关文件夹:oracle/相关课件/第12章_Java
C++ 常用类 string类
===6.3.2使用string对象=== string word="I love China" *链接字符串* string description=adjective + " " + word; _Note_: 不能连接两个字符串字面量,下面的语句是错误的 string test= "I have" + "a dream"; ===6.3.3访问字符串中的字符=== *读取字符串* getline(cin, text);
异常处理与常用类
异常的三个种类: 检查异常:用户错误操作或者是不能被程序员预见的问题,必须由java语言来处理. 运行时异常:运行时异常是一个可以被程序员避免的异常,比如像数组越界.除数为0.引用为null. 错误:错误不是异常,是程序员或用户无法控制的问题,像调用栈溢出. 异常的控制流程: 异常是一个被方法抛出的对象,可以有三种方式来处理: 1.捕获这个异常 2.捕获异常并向下抛出 3.不捕获让它向调用栈弹出. 我们可以使用Throwable类的printStackTrace()方法打印调用栈跟踪信息. T
Java——常用类(String)
[常用类] <1>字符串相关类(String.StringBuffer) <2>基本数据类型包装类 <3>Math类 <4>File类 <5>枚举类 [String类] <1>java.lang.String类代表不可变的字符序列. <2>String类的常见构造方法: String(String original) //创建一个String对象为original的拷贝 String(char[] value) //用一个
Java基础 —— Java常用类
Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@"+哈希码(一般用于覆盖). equals()方法:返回"=="操作的布尔值(一般用于覆盖). finalize()方法:用于对象的销毁(不受人为控制,由JVM调用,遵从垃圾回收机制). clone()方法:用于对象之间的拷贝(深拷贝). getClass()方法:返回对象的字节码文件对