深度重走java之路

深入分析面向对象特征
一、封装:
1、new就是一个实例诞生,可以对这个人进行各类属性的设置;
2、将数据进行封装,将变量添加关键字(private);
3、外部就通过set和get方法进行传值和返值(本类成员函数调用本类成员变量)
4、成员变量不能添加语句,通过私有添加set和get方法可以进行语句控制(条件判断);
5、并不是只要是封装就是私有,封装是相对的,不是绝对的,私有是封装的一种体现形式;
二、继承:
1、继承就是在不改变原有类的基础生对功能进行拓展(类与类之间的关系);
2、子类是不能访问父类的私有变量;
三、多态
1、一个事务存在的多种形态
2、必须存在子父类继承关系和实现
3、父类引用指向子类对象(编译看父类,运行看子类)(也叫动态绑定)
多态的几个前提
1、父类 对象1 = new 子类();自动提升
2、子类 对象 = (子类)对象1;强制转换
4、有重写;
主函数进栈
new出来的东西放在堆
.出来的方法放在方法区里面
父类的方法子类没有或没有重写,就直接调用父类的
5、多态的成员细节
只有非静态的成员方法编译看父类,运行看子类
其他的都是编译和运行都看父类
四、抽象
1、抽象方法必须放在抽像类中
2、抽象类是不能被实例化的,因为调用抽象是没有意义的
3、如果一个抽象类中没有抽象方法,就只有一种意义,就是不让其他类来创建本类对象;
4、抽象类中可以放非抽象方法,且被继承后还能被调用该非抽象方法
(适配器设计模式(选择继承,选择实现))
中间有一个过渡的类,该类同样为抽象类,并继承初始父类,后续类继承过渡类,并选择
性对所需方法进行重写
(类与类之间)
单继承(extends)—安全性
多实现(implements)类与接口
接口与接口(多继承)
五、接口
1、类和接口是实现关系
2、实现接口就必须重写接口的方法
3、接口讲究对外暴露的原则
4、隐藏关键字 static final 数据类型 常量(接口中所有的变量都是常量,所有的方法都是抽象的)
六、设计模式
1、单例设计模式
(1)私有类的构造函数
(2)创建本类对象,并将其私有化
(3)对外提供一个公共的访问方法
懒汉式与饿汉式的区别
1、饿汉式是用空间换时间,懒汉式是用时间换空间
2、如果是单线程,都没有问题
懒汉式不能在多线程时用
懒汉式又叫延迟加载模式(面试考的较多)
2、模板方法设计模式
alt+shift+M(抽取方法)
七、字符串处理技巧
1、正则表达式
字符类
(1)约束字符串
(2)public class Regular {
public static void main(String[] args) {
String regex = “[a-z&&[def]]”;
System.out.println(“d”.matches(regex));
}
}
简单的正则规则比较,运用到matches方法
预定义字符类(查看javaAPI)
反斜线代表转义字符\d == \d
ctrl + shift +o导包快调节键
从信息中提取电话号码
// 设置所要提取的字符串
// 获取正则
// 创造匹配器
// 使用find的方法查找字符串中的符合要求的字符串
public class Regular {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

            String s = scanner.nextLine();
            String s1 = scanner.nextLine();

            String message = "我的电话号码是"+s+"以前我用"+s1;
            String regex = "1[34578]\\d{9}";// 电话号码正则
            // 创建正则
            Pattern p = Pattern.compile(regex);
            // 匹配器
            Matcher m = p.matcher(message);
            // 拿着正则去字符串去找目标串
            // boolean b1 = m.find();
            // //将找到符合要求的字符串输出
            // String str =m.group();==/*System.out.println(m.group());*/
            // System.out.println(str);
            /*
             * 循环控制匹配
             * 基本思想:查找目标串的过程中返回值位boolean类型,且为true才会继续查找
             */
            while (m.find()) {
            System.out.println(m.group());
            }
        }
    }    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值