java se step 4

本文深入讲解Java中的多态、接口、参数与返回值等核心概念,并介绍内部类的应用及正则表达式的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

abstract: 多态、接口、参数与返回值、内部类、正则表达式

 

多态


        前提:
               1)必须有继承关系;
               2)必须有方法重写;
               3)必须有父类引用指向子类对象(向上转型)
                      格式:   父类名 对象名 = new 子类名();

 


        成员访问特点:
                1)成员变量的访问特点:  编译看左,运行看左 (左:父类   右:子类)
                2)成员方法(非静态)的访问特点: 编译看左,运行看右                
                3)构造方法:作用:就是给对象进行初始化的
                4)静态的成员方法的访问特点:   编译看左,运行看左

 


        好处:
                 1)提高代码的扩展性
                 2)提高代码的维护性

 


         弊端:
                 不能访问子类特有功能;
                  解决方案:向下转型

 


          抽象类多态:
                 抽象类中的抽象方法必须重写;

 

 

 

 

接口interface


          格式:
                  interface 接口名{
                   }
                  class 类名 implements 借口名{
                   }

 


           特点:
                     1) 接口不能实例化;
                     2) 接口的子实现类要实例化,否则没意义
                     3) 接口的实现类是具体类: 接口名 对象名 = new 子实现类名();
                     4) 接口的方法都是抽象方法
                     5) 成员变量默认修饰符:public static final
                         成员方法默认修饰符:public abstract


           类和接口的关系: implements 实现关系,而且一个类继承另一个类的同时还能实现多个接口
           类和类的关系: extends 继承关系,单继承,不能多继承,可多层继承:
           接口与接口的关系: extends 继承关系,可单/多继承:

 

 

 

 

args_and_return          


            形式参数问题:
                  前面讲过基本数据类型,现在讲引用数据类型为具体类,抽象类,接口时的形参问题
                  具体类需要该具体类对象,抽象类需要抽象类子类对象,接口类需要子实现类对象
           方法返回值:
                   基本类型是返回什么基本类型数据就用什么基本类型接收
                   引用类型是具体类时需要返回该具体类,具体对象
                   引用类型是抽象类时返回的是该抽象类的子类对象;

                  关于链式编程:每次调用的都是返回的对象,只有对象才能调用方法;

 

 

 

 

 

内部类


                  局部内部类(在方法中定义的类):
                          1) 局部内部类里的成员方法直接可以访问外部类的成员,包括私有

                          2) 但局部内部类访问局部变量则该变量必须被final修饰                                                

                          3) 访问特点:
                                   在外部类的成员方法中创建内部类对象,即对象名.局部内部类的成员方法

 

 


                  成员内部类(在外部类的成员位置):
                          1) 一般通过 外部类名.内部类名 对象名 = 外部类对象.内部类对象 来创建对象调用内部类的方法;

                                                   Outer.Inner oi = new Outer().new Inner();

                          2) 当成员内部类被static修饰时,是为了方便调用   外部类名.内部类名.方法
                              当成员内部类被private修饰时,是为了保证数据安全性

 

 


                   匿名内部类(接口中使用最频繁):
                          特点:
                                    节省内存空间,使用方便


                          格式:
                                    new 类名/接口名(){
                                        重写/实现一些方法()
                                      }

                          本质:
                                   是一个继承了某一个类或者实现了某一个接口的子类对象

 

 

 

 

正则表达式

       正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则达表示通常被用来检索、替换那些符合某个模式的文本。

        用到的String类的方法:            

               public boolean matches(String regex) 判断此字符串是否匹配给定的规则

               public String[] split(String regex) 将此字符串按照指定的规则进行切割

               public String replaceAll(String regex,String replacement) 将满足规则的字符串用给定字符串所替代

 

         常见规则

regex="[123ABCabc]";//允许出现1,2,3中任意一个
                regex="[^123]";//除了123其他都可以
                regex="[0-9]";
                regex="[a-z]";
                regex="[A-Z]";
                regex="[0-9a-zA-Z]";
                regex=".";//匹配任意单个字符
                regex="\\.";//我想让.代表这个.本身 需要对点进行转意
                regex="\\d";//表示[0-9]
                regex="\\w";//表示 [a-z_A-Z]
                regex="a?b?";//一次或一次也没有 ""空串就代表0次
                regex="a*";//零次或多次  大于等于1次 都算多次
                regex="a+";//至少一次,或多次
                regex="\\w+";
                regex="[0-9]{5}";//正好出现几次
                regex="[a-z]{5,}";//至少5次
                regex="[a-zA-Z0-9]{6,18}";//表示6到18


                String mailRgex="[a-zA-Z0-9]{6,16}@[a-z0-9]{2,16}\\.(com|cn|net|org)";
                //匹配这个正则
                boolean b = "abddfdfdffd".matches(regex);
                System.out.println(b);

                split();截取    "91 27 46 38 50”返回91,27...
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值