您的位置:首页 > 编程语言 > Java开发

小白学java-基础篇(类、对象、String、this)

2018-02-28 18:49 435 查看
1、封装类知识点:

set****(参数)
用于设置变量的控制,无返回值;

get****()
用于给外部类获取本类的变量值,一般无参,返回要获取的变量值。可以没有,就看外部类需不需要获取本类的变量值;

构造方法:
public 类名(){this.set****(****)}
或者

public 类名(){this.****=****}
,用于把外部类的属性值赋给本类的变量。

2、匿名对象:

只在堆内存开辟空间,没有开辟栈内存存放引用地址;

格式:
new 类名(参数)


只能使用一次,使用完立马等待垃圾回收,适合用于一次使用,且马上使用,代码量原则上要少于四行。

3、String类(比较特殊):

String赋值有两种:
String 变量名=变量值
String 变量名=new String(变量值)
,其实这里的变量名其实是一个对象;

String 变量名=变量值
是在常量池中定义了该变量值,变量名指向常量池中的变量值;变量池不存在相同的字符串,即多个有相同变量值的变量名,都是指向同一个变量值地址;

String 变量名=new String(变量值)
,如果常量池没有该变量值的定义,会同时开辟两个空间,一个是常量池中定义了该变量值,一个是在堆内存存放该变量值,变量名指向堆内存的变量值;

常量池的拼接:

String str3 = "ABC";
String str4 = "ABC";
String str5 =  "AB" + "C";
str3 == str4   //true
str3 == str5  // true


String a  = "ABC";
String b = "AB";
String c = b + "C";
System.out.println( a == c );//false


这是因为a、b在编译时就已经被确定了,而c是引用变量,不会在编译时就被确定;

一般建议用
String 变量名=变量值
这个格式,开辟空间少,效率比构造器高。

4、String类的常用方法:

a、
public String(char[] value)
将字符类型的数组转换成字符串。

char[] value = {"a","b","c","d"};

String str4 = new String(value);//相当于String str4 = new String("abcd")
;

b、
public String(char[] value,int offset,int count)
将指定范围的数组变为字符串;(这里的下标是从0开始的)

c、
public String(byte[] values)
将byte类型的数组转换成字符串,首先byte取值范围是-128~127,调用该方法时,先将byte数组中每个元素转换成对应的字符,然后拼接输出。

byte[] strb = {65,66};

String str6 = new String(strb);//相当于String str6 = new String("AB")
;

d、
public String(byte[] bytes,int offset,int length)


**!**a到d都是构造方法,需要实例化对象调用,即要用new关键字

e、
public char[] toCharArray()
将字符串转变为字符数组;

String k = "abjht@";

char a[] = k.toCharArray();


f、
public char charAt(int index)
将指定位置的字符串取出;

g、
public byte[] getBytes()


h、
public int length()
返回字符串长度;

!数组调用length是没有括号的

i、
public int indexOf(String str)
从头开始查找指定字符串的位置,如果不存在,返回-1,这个也可以用于判断字符串是否含有某个字符串;

!参数是字符串值时,别忘了加双引号

j、
public int indexOf(String str,int fromIndex)
从指定位置开始查找指定字符串的位置;

!输出的结果是从字符串的首位开始计数

k、
public String trim()
去掉左右空格,但是中间保留;

l、
public String substring(int beginIndex)
从指定位置起,取出剩余的字符作为新的字符串返回;

m、
public String substring(int beginIndex, int endIndex)
取出指定范围内的字符作为新的字符串返回;

!m方法的指定范围不包括endIndex

n、
public String[] split(String regex)
按照指定的字符串进行拆分;(返回的是数组类型)

o、
public String toUpperCase()
字符串中的字母全部变为大写;

p、
public String toLowerCase()


q、
public boolean startsWith(String prefix)
判断是否以指定的字符串开头;

r、
public boolean endsWith(String suffix)
;

s、
public boolean equals(String str)
判断两个字符串内容是否相等;(区分大小写,不判断引用地址)

t、
public boolean equalsIgnoreCase(String anotherString)
不区分大小写判断两个字符串内容是否相等;

u、
public String replaceAll(String regex,String replacement)
字符串替换;

其他方法可以参考API文档。

5、this调用本类的构造方法时,必须放在代码块的首行,且必须要有无this的构造方法作为出口点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息