>>>基本类型的包装类
拆包–>封包
拆包–>包装类型转换为基本数据类型
封包—>基本数据类型转换为包装类型
编号 | 基本数据类型 | 包装类型 |
---|---|---|
1 | byte | Byte |
2 | short | Short |
3 | char | Character |
4 | int | Integer |
5 | long | Long |
6 | float | Float |
7 | double | Double |
8 | boolean | Boolean |
为何要用包装类型(复杂类型用)
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不然内存溢出或泄露可能会蓝屏。
优化版:
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;
}