栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA自学课程笔记6

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA自学课程笔记6

2021年2月18日11点21分
JAVA自学课程笔记6:

	Object是类层次结构的根类。每个类都使用Object作为超类,即每个类都继承了Object里的非私有方法。

	toString()方法:
		“System.out.println(类对象名);”实际输出的是该对象toString()方法所返回的字符串(类的名字和该对象哈希码组成的一个字符串)
		== 
		“System.out.println(aa.toString());”

	equals()方法:
		判断this和obj本身的值是否相等,即是否为同一对象,即是否内存同一块存储单元。(即便内容完全相等的两块不同的内存对象,也有可能返回false。同一块内存返回true,非同返回false)
		public boolean equals(Object obj){
			return this == obj;
		}
		
		若使用equals()方法判断成员的内容是否相同:
			class A{
			    public int i;

			    public A(int i){
				this.i = i;
			    }
			}

			public class Test1{
			    public static void main(String[] args){
				A aa1 = new A(2);
				A aa2 = new A(2);
				System.out.println(aa1.equals(aa2));
			    }
			}
		//输出结果:
			false
		
		重写equals()方法以判断成员的内容是否相同返回boolean值:
			class A{
			    public int i;

			    public A(int i){
				this.i = i;
			    }

			    public boolean equals(Object obj){
				A aa = (A)obj;

				if(this.i == aa.i)
				    return true;
				else
				    return false;
			    }
			}

			public class Test2{
			    public static void main(String[] args){
				A aa1 = new A(2);
				A aa2 = new A(2);
				System.out.println(aa1.equals(aa2));
			    }
			}
		//输出结果:
			true
		
	String类:
		equal()方法被重写,通过检查Unicode字符是否相同返回对应的boolean值:
			public class test1{
			    public static void main(String[] args){
				String a = "aaa";
				String b = "aaa";
				System.out.println(a.equals(b));
			    }
			}
		String类常用方法:
			public char charAt(int index)
				返回字符串中第index个字符。
			public int length()
				返回字符串的长度。
			public int indexOf(String str, int fromIndex)
				返回字符串中从fromIndex开始出现str的第一个位置。
			public boolean equalsIgnoreCase(String another)
				比较字符串与another是否一样(忽略大小写)。
			public String replace(char oldChar, char newChar)
				在字符串中用newChar字符替换oldChar字符。
			public boolean startsWith (String pref ix)
				判断字符串是否以prefix字符串开头。
			public boolean endsWith (String suffix)
				判断字符串是否以prefix字符串结尾。
			public String toUpperCase ()
				返向一个字符串为该字符串的大写形式。
			public String toLowerCase ()
				返回一个字符串为该字符串的小写形式。
			public String substring (int beginIndex)
				返回该字符串从beginIndex开始到结尾的子字符串。
			public String substring (int beginIndex, int endIndex)
				返问该字符串从beginIndex开始到endIndex结尾的子字符串。
			public boolean startsWith (String pref ix)
				判断字符串是否以prefix字符串开头。
			public boolean endsWith (String suffix)
				判断字符串是否以prefix字符串结尾。
			public String toUpperCase () 
				返回一个字符串为该字符串的大写形式。
			public String toLowerCase ()
				返回一个字符串为该字符串的小写形式。
			public String substring (int beginIndex)
				返回该字符串从beginIndex开始到结尾的子字符串。
			public String substring (int beginIndex , int endIndex)
				返回该字符串从beginIndex开始到endIndex结尾的子字符串。

		public class Test1{
			public static void main(String[] args){
				String s = "Mary,F,1976";
				String[] sPlit = s.split(",");
				for(int i = 0; i < sPlit.length;i++)
					System.our.println(sPlit[i]);
			}
		}
		//运行结果:
		Mary
		F
		1976

		charAt(int index)方法取出,统计一个String对象中大写字母,小写字母,非字母各自出现的个数:
			class Test2{
				public static void main(String[] args){
					String str = "abAM1,!23";
					int cntU = 0;	//大写字母的个数
					int cntL = 0;	//小写字母的个数
					int cntOther = 0;	//非字母的个数
					int i;
					String s1 = "abcdefghijklmnopqrstuvwxyz";
					String s2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

					for(i = 0; i < str.length(); ++i){
						char ch = str.charAt(i);
						
						//if(ch>='a' && ch<='z')	//方法①
						//if(-1 != s1.indexOf(ch))	//方法②
						if(Character.isUpperCase(ch)){	//方法③
							cntL++;
						}

						//else if(ch>='A' && ch<='Z')		//方法①
						//else if(-1 != s2.indexOf(ch))		//方法②
						else if(Characer.isLowerCase(ch)){	//方法③
							cntU++;
						}

						else{
							cntOther++;
						}
					}
					System.out.printf("大写字母个数:%dn", cntU);
					System.out.printf("小写字母个数:%dn", cntL);
					System.out.printf("非字母个数:%dn", cntOther);
				}
			}

			字符串本身就是个对象:
				System.out.printf("%bn", "abc".equals("zhangsan"));
				System.out.printf("%dn", "abc".length());
				System.out.printf("%dn", "abcadssad".indexOf("ads"));
				System.out.println(Integer.toHexString(47).toUpperCase());
				//不能用toUpperCase(Integer.toHexString(47)),因为toHexString(47)的返回类型是public static String,而toUpperCase()的返回类型是public String。无法用非静态调用静态成员
			//结果:
				false
				3
				3
				2F

		StringBuffer类:
			由来:String类对象一旦创建就不可更改。如果经常对字符串内容进行修改而使用String的话,就会导致既耗空间又耗时间。
			
			常用方法:
				public StringBuffer append(…)	//重载方法
					包括(String str), (StringBuffer sbuf), (char[] str), (char[] str, int offset, int len), (double d), (Object obj)。用于在字符串结尾续写。
				public StringBuffer insert(…)	//重载方法
					包括(int offset, String str), (int offset, double d)。用于在指定位置插入字符序列。
				public StringBuffer delete(int start, int end)
					可以删除从start开始到end-1为止的一段字符序列。
				public StringBuffer indexOf(String str)/(String str, int fromIndex)
					返回从指定索引处开始第一次出现的指定子字符串在该字符串中的索引。
				public StringBuffer reverse()
					字符序列逆序。

			StringBuffer产生的对象可以直接打印:
				StringBuffer aa = new StringBuffer("AAAA");
				System.our.println(aa);		//结果:AAAA

			StringBuffer产生的对象不能和字符串互相转换:
				StringBuffer aa;
				aa = "AAAA";	//error
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/346437.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号