基本类型的包装类,面向对象三大特性,继承(inherit).一道力扣分享。

>>>基本类型的包装类

拆包–>封包

拆包–>包装类型转换为基本数据类型

封包—>基本数据类型转换为包装类型

编号基本数据类型包装类型
1byteByte
2shortShort
3charCharacter
4intInteger
5longLong
6floatFloat
7doubleDouble
8booleanBoolean

为何要用包装类型(复杂类型用)

java是一个面向对象的语言,

C++是一个半面向对象语言。

在这里插入图片描述

封包

int—>Interger

拆包

Interger—> int

基本数据类型和包装类型的区别

包装类型功能强大

包装类型占用更多的空间

初始值

  • class A{ private int a;} //a的初始值0
  • class A{private Integer a;} //a的初始值null

例子

Integer a = new Integer(1);
Integer a = 1;

在这里插入图片描述

常量池:将常量放入常量池,如果常量池存在,则直接返回。

在这里插入图片描述

package com.ffyc.number;

public class IntegerDemo {
    public static void main(String[] args) {
        Integer a = new Integer(1);
        Integer b= new Integer(1);
        System.out.println(a == b);

        //常量池
        Integer c1 = 1;
        Integer c2 = 1;
        System.out.println(c1 == c2);
    }
}

在这里插入图片描述

String的字符串常量池

在这里插入图片描述

预设空间–jvm分配的空间(和new的空间不在一起)

在这里插入图片描述

空间满了java自动回收,c/c++自己free不然内存溢出或泄露可能会蓝屏。

  • 面试题

  • key:String的底层是用的StringBulider进行拼接,toString是在底层new了新的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 力扣题:[LCR 181. 字符串中的单词反转]

在这里插入图片描述

优化版:

在这里插入图片描述

B站版:

在这里插入图片描述

面向对象三大特性

封装

在这里插入图片描述

隐藏代码的具体实现。保证代码的安全性。可复用性。

class{
[private/public/默认/protected] ===> 可见性,protected是继承专属的
}

*多态(难)

运行过程中,状态会发生改变。

抽象–现在不说了

继承

在这里插入图片描述

继承(inherit)

概念

子类继承父类的所有的属性方法。——无选择性、单一继承。

职责:软件复用---------代码复用

继承问题

交通管理系统——海陆空

涉及资源

Bus,Plane,Ship

package com.ffyc.inherit.entity;

public class Bus {
    public void run(){
        System.out.println("运送乘客");
    }
}

在这里插入图片描述

从概念上讲

Bus,Plane,Ship---->交通工具Traffic

提出一个公共类(父类)

父类也叫基类(Base)

在这里插入图片描述

= : 是(is) 父类的引用指向子类对象。

方法的覆盖

继承里的重写

在这里插入图片描述

子类是如何创建的

子类会默认继承父类的构造器

super父类

父类的引用

在这里插入图片描述

注意:

  • 先有父类,再有子类

  • super(带括号) :默认调用父类的无参构造器(初始化只能一次,在第一句–永远要先调用)

    在这里插入图片描述

  • 构造器不能被继承,只能调用

  • **super.**xxx:调用父类的方法,在构造器外面用
  • 类–>对象 :是一个艰苦的过程

this

当前对象的引用

void setName(String name){
	this.name = name;
}

力扣题目分享

  • 输入正整数a,b,返回最大值。(不能使用比较运算符)

  • package com.ffyc.homeDemo;
    
    /**
     * ^
     * &
     * 强大的位运算符
     */
    
    public class MaxValue {
        public static void main(String[] args) {
            int a = 5;
            int b = 6;
            int c = a-b;
            int k = (int)(c>>63);//(k+1)a-kb,k=-1
            System.out.println(k);
        }
    }
    
    
    
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值