String类中的方法总结
* 判断功能:
* boolean startsWith(String s); 判断字符串是否以 指定的字符串 开头
* boolean endsWith(String s); 判断字符串是否以 指定的字符串 结尾
* boolean contains(String s); 判断字符串是否 包含指定的字符串
* boolean isEmpty(); 判断字符串是否为空
* boolean equals(String s); 判断字符串 和指定的字符串是否相同, 区分大小写
* boolean equalsIgnoreCase(String s); 判断字符串 和指定的字符串是否相同, 忽略大小写
* 获取功能:
* String substring(int start, int end); 从字符串中截取 指定索引处的字符串, 包括start位置, 不包括end位置, 包左不包右
* String substring(int start); 从字符串中截取 指定索引处的字符串, 从start位置到字符串末尾
* int length(); 获取字符串的长度
* int indexOf(); 判断字符(串) 在字符串中第一次出现的位置
* int lastIndexOf(); 判断字符(串) 在字符串中最后一次出现的位置
* char charAt(); 根据给定的索引, 获取对应位置的字符
* 转换功能:
* String toUpperCase(); 把字符串中所有的字母都转换成其对应的大写形式
* String toLowerCase(); 把字符串中所有的字母都转换成其对应的小写形式
* String concat(); 拼接字符串, 只不过我们一般不使用它, 用+号
* char[] toCharArray(); 把字符串转换成其对应的 字符数组
* 其他功能:
* String trim(); 移除字符串两端的空格
* String[] split(); 按照指定的字符串 切割字符串
* String replace(); 替换
1.1面向对象
定义格式:
public class 类名{
// 成员变量----- 属性
private 数据类型 变量名1;
private 数据类型 变量名2;
…其他成员变量
//成员方法----- 行为
public 返回值类型 方法名(参数类型 参数名,参数类型 参数名2…) {
方法体;
}
每个属性对应的get/set方法
}
对象创建格式:
数据类型 对象名= new 数据类型();
对象方法的调用:
无返回值:
对象名.方法名(参数);
有返回值:
返回值类型 变量名 = 对象名.方法名(参数);
private修饰后的标准类代码
•private最常见的应用:
–把成员变量用private修饰
–提供对应的getXxx()/setXxx()方法
1.2继承
1.继承的概述和特点
多个类有共同的成员变量和成员方法,抽取到另外一个类中(父类、基类),在让多个类去继承这个父类,我们的多个类就可以获取到父类中的成员了。
1.继承中成员变量的特点
子类只能获取父类非私有成员
子父类中成员变量的名字不一样直接获取父类的成员变量
子父类中成员变量名字是一样的获取的是子类的成员变量
2.父类成员变量,子类成员变量,局部变量都同名的情况下遵循就近原则
就近原则:谁离我近我就用谁
如果有局部变量就使用局部变量
如果没有局部变量,有子类的成员变量就使用子类的成员变量
如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量
3.变量同名的情况下如何使用父类的成员变量
如果变量或者方法的前面加了super就表示这是父类的。
如何表示当前子类的成员变量,如何表示父类的成员变量?
用 this.变量名 表示当前类的成员变量
用 super.变量名 表示父类的成员变量
格式:
父类的定义:
class Person{
private String name;
public void eat(){
System.out.println(“吃饭”);
}
get/set方法
}
子类继承父类的定义:
class Chinese extends Person{}
子类可以直接使用父类非私有的成员变量与成员方法
(注:如果成员变量没有使用private修饰,则子类也可直接访问。)
子类的格式:
子类的使用:
class Test{
public static void main(String[] args) {
Chinese c = new Chinese();
c.setName(“张大力”);
String name = c.getName();
System.out.println(name);//打印结果为张大力
c.eat(); //打印结果吃饭
}
}
格式:类定义:
public class Person{
public void method(){
System.out.println(“一个普通方法”);
}
}
public class Student extends Person{
public void method(){
System.out.println(“一个被重写的方法”);
}
public void method2(){
System.out.println(“一个干扰方法”);
}
}
类使用:
Student s = new Student(); // 这里就是将子类对象赋值给子类的引用
Person p = new Student(); // 子类对象赋值给父类引用
p.method(); //打印结果为:一个被重写的方法
}
public void method2(){
System.out.println(“一个干扰方法”);
}
}
类使用:
Student s = new Student(); // 这里就是将子类对象赋值给子类的引用
Person p = new Student(); // 子类对象赋值给父类引用
p.method(); //打印结果为:一个被重写的方法
1.方法的重写:
在子父类当中,子类的方法和父类的完全一样,子类重写了父类的方法(覆盖),当子类重写了父类的方法之后,使用子类对象调用的就是子类的方法。(方法重写有两个必备条件:1.必须两个类要有继承关系。2.子类中的方法的方法名,参数列表,返回值类型都要和父类中的这个方法相同。)
理解:可以理解我父辈流传下来的技艺,子女对这个技艺做了改善。子女再去使用这个技艺的时候肯定就是时候完善后的。我们的方法就好像是技艺,他是父类继承下来的。子类对其做了修改,就好像是对技艺进行了改进。
2.继承中方法的调用
如果创建了一个子类对象,调用了该对象的某个方法,如果这个方法只在父类里面有,而子类里面没有,那么肯定就是调用父类的该方法。
如果该方法父类也有,子类也有,那么就是调用子类的方法。
2.1多态的前提
①子父类的继承关系
②方法的重写
③父类引用指向子类对象
2.2多态中成员的访问特点
多态中成员的访问特点:
* A:成员变量
* 编译看左边,执行看左边。
* B:成员方法
* 编译看左边,执行看右边。
多态中方法成员方法的时候,在编译的时候会先去父类中检查有没有改方法,如果有就不会报错
* 如果没有,就报错.在运行的时候回去子类中检查该方法有没有重写,如果有就执行子类中的该方法
* 如果没有,就执行父类中的该方法.
总结:编译时看的都是左边(也就是看父类里有没有这个成员,如果没有的话编译的时候就会报错),运行时成员方法看的是右边(实际的运行效果看子类该方法的代码。),其他(成员变量)看的都是左边
2.3多态中的向上转型和向下转型
引用类型之间的转换
向上转型
由小到大(子类型转换成父类型,比如父类引用指向子类对象的时候)
向下转型
由大到小(强制类型转换)
基本数据类型的转换
自动类型转换
由小到大
byte short char --- int --- long --- float --- double
强制类型转换
由大到小(强制类型转换) |
|