A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

yexy12345

初级黑马

  • 黑马币:21

  • 帖子:6

  • 精华:0

© yexy12345 初级黑马   /  2018-4-8 23:32  /  879 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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
         强制类型转换
             由大到小(强制类型转换)

1 个回复

正序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马