第七篇 黑马程序员-多态与String类以及基本数据类型的包装类

------- android培训java培训、期待与您交流! ---------

一.
多态的概念:
可以理解为事物存在的多种体现形态。
打个比方:
人:男人,女人

动物:猫,狗。

猫 x=new 猫();

动物 x=new 猫();
多态的一种形式:
父类指向子类对象,当我想使用子类特有内容的时候,就向下转型,如下代码所示:
package circulate;

public class Demo4
{
 private int num;
 Demo4(int num)
 {
  this.num=num;
 }
 public boolean equals(Object obj)
 {
  Demo4 d=(Demo4)obj;//父类指向子类对象,当我想使用子类特有内容的时候,就向下转


  
  return this.num==d.num;
  
  
 }

}

public class ObjectDemo
{
 public static void main(String[] args)
 {
  Demo4 d1=new Demo4(4);
  Demo4 d2=new Demo4(4);
  
  
  System.out.println(d1.equals(d2));
 }
}
1.多态的体现
父类的引用指向了自己的子类对象
父类的引用也可以接受自己的子类对象
2.多态的前提
必须是类与类之间有关系,要不是继承或实现
通常还有一个前提 那就是覆盖
3.多态的好处
多态的出现大大提高了程序的扩展性
4.多态的弊端
提高了扩展性,但是只能使用父类中的引用访问父类中的成员
5.多态的出现代码中的特点(多态使用的注意事项)
在编译时期,参阅引用型变量所属的类中是否有调用的方法,如果有,编译通过。反之,失败
在运行时期参阅对象所属的类中是否y9ou调用的方法。
简单总结:成员函数在多态调用时,编译看左边,运行看右边。
在多态中,无论编译和运行,都参考左边(引用型变量所属的类)
在多态中,静态成员函数的特点:
无论编译和运行,都参考左边。
字符串String:
字符串最大特点,一旦被初始化,就不可以改变。
字符串是否是以指定内容开头
boolean startsWith(str)
字符串是否以指定内容结尾
boolean endsWith(str);
字符串中是否有内容
boolean isEmpty();此方法的原理就是判断长度是否为0,0和""以及null有区别,""表示一个对象,null
是指向空
字符串中是否包含一个子串
boolean contains(str);
判断字符串内容是否相同
boolean equals(str);
判断内容是否相同,并忽略大小写
boolean equalsIgnoreCase();
转换:
将字符数组转成字符串
构造函数:String(char[])
String(char[],offset.count):将字符数组值的一部分转换成字符串
将基本数据类型转成字符串
static String valueOf(int)
static String valueOf(double)
举例:比如3+"";是一个字符串,那么String.valueOf(3)和它一样
将字节数组转成字符串
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串
将字符串转成字符数组
char[] toCharArray();
将字符串转成字节数组
byte[] getBytes();
替换:
String replace(oldchar,newchar);
切割:
String[] split(regex);
子串:获取字符串中的一部分
String subString(begin);
String subString(begin,end);
转换,去除空格,比较
1.将字符串转成大写或者小写。
String toUpperCase();
String toLowerCase();
String trim();
3.对两个字符串进行自然顺序的比较
int comparTo(String);
StringBuffer类:
什么时候用呢?当数据类型不确定,而且最终变成字符串,而且数据的个数不确定,用这个比较方便,比
数组方便
字符串的组成原理就是通过该类实现的
StringBuffer可以对字符串内容进行增删
StringBuffer是一个容器,且是可变化的,字节可以操作多个数据类型,最终会通过toString方法变成字符

串,这就是StringBuffer的三个特点
很多方法与String相同
StringBuffer是可变长度的
它是一个容器,所以就有以下功能:
1.存储
StringBuffer append():将指定数据作为参数添加到已有数据结尾
StringBuffer insert(index,数据):可以将数据插入指定index
2.删除
StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end.
StringBuffer  deleteCharAt(index):删除指定位置的字符
3.修改
StringBuffer replace(start,end,要替换的数据String)
void setCharAt(int index,char ch):替换
4.反转
StringBuffer reverse();
5.void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)
将缓冲区中指定数据存储到指定数组中
StringBuilder类:
在jdk1.5之后出现的
不同之处是StringBuffer是线程同步
StringBuilder:是线程不同步的
升级三个因素:
提高效率
简化书写
提高安全性
基本数据类型的对象包装类:
byte-Byte short-Short int-Integer long-Long  boolean-Boolean  float-Float
double-Double  char-Character
基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间作转换
1.基本数据类型转字符串
基本数据类型+""
基本数据类型.toString(基本数据类型值)
如:Integer.toString(34):就是将34整数变成"34"
2.字符串转基本数据类型
基本数据类型包装类.parse基本数据类型,比如:
xxx a=xxx.parsexxx(String)
int a=Integer.parseInt("123");
double b=Double.parseDouble("12.23");
boolean b=Boolean.parseBoolean("true");
十进制转成其他进制
toBinaryString();
toHexString();
toOctalString();
其他进制转成十进制
parseInt(String,radix);
有一个intValue的方法也可以把一个Integer对象变成一个int值,比如
Integer i=new Integer("123");
int num=i.intValue();
注意:Integer本身复写了Object里面的equals方法,它建立了本对象自己比较相同的特有方式,他比较的
是数值是否相同。

 

-------- android培训java培训、期待与您交流! ----------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值