java 面向对象三

2021-06-08 15:02

阅读:664

标签:位置   object类   end   字符串   shc   bool   拆箱   自己   引用类型   

1.基本数据类型的包装类

Java提倡的万物皆对象,但是数据类型的划分出现了基本数据类型和引用数据类型,那么我们怎么能把基本数据类型称为对象呢?
技术图片

  • 除了Integer和Character定义的名称和对应的基本类型差异大,其他六种都是将首字母大写就可以了。
  • Integer,Byte,Float,Double,Short,Long都是Number类的子类。;
  • Character和Boolean都是Object直接子类;
  • 8个类都是final修饰的(不可被继承)。
  • 涉及到享元模式:在操作整数的时候,系统缓存一个-128~127 范围的数

2.自动装箱&自动拆箱

  • 自动装箱:可把一个基本类型变量直接赋给对应的包装类对象或则Object对象
  • 自动拆箱:允许把 包装类对象直接赋给对应的基本数据类型

3.基本类型和String之间的转换

  • String → 基本类型,除了Character外所有的包装类提供parseXxx(String s)静态方法,用于把一个特定的字符串转换成基本类型变量;
  • 基本类型 → String,String 类有静态方法valueOf(),用于将基本类型的变量转换成String类型。
String str = "17";
int i = Integer.parseInt(str);//String  --> 基本类型
String s1 = String.valueOf(i);//基本类型 --> String

4.Object类

  • 所有类的公共父类,一旦一个类没有显示地继承一个类则其直接父类一定是Object。

  • 一切数据类型都可用Object接收

  • class OOXX extends Object{}等价于class ooXX {}

  • 常见方法
    public boolean equals(Object obj):对象比较
    public int hashCode():取得该对象的Hash码
    public String toString():对象描述

  • Object类的 toString()方法:“对象的描述”
    建议所有类都覆写此方法
    直接打印输出对象时,会调用该对象的toString()方法。

  • 打印对象的时候,实际调用的对象实际指向的类的自我描述;
    全限定类名+@+十六进制的hashCode值,等价于
    全限定类名+@+IntegertoHexString(该对象.hashCode) ;

  • equals也是判断是否指向同一个对象
    没有实际意义,有必要可以重写
    public boolean equals(Object obj) {}

  • String 覆写了 Object的equals方法:只比较字符的序列是否相同

  • ==用于判断两个变量是否相等
    基本类型:
    引用类型:必须指向同一个对象,才true
    只能比较有父子或平级关系的两个对象

5.代码块

  • 代码块指的是使用"{}"括起来的一段代码,根据代码块存在的位置可以分为4种:
    普通代码块;
    构造代码块;
    优先于构造方法执行,每次实例化对象之前都会执行构造代码块。
{
	 System.out.println("我是构造代码块");
    }
    public Demo(){
	System.out.println("我是构造方法");
    }
    public static void main(String[] args) {
	 Demo d1  = new Demo();
	 Demo d2  = new Demo();
    }

    静态代码块;
          优先于主方法执行,优先于构造代码块执行,不管有创建多少对象,静态代码块只执行一次,可用于给静态变量赋值;
  {
	System.out.println("我是构造代码块");
    }
    public Demo(){
	System.out.println("我是构造方法");
    }
    static {
	System.out.println("我是静态代码块");
    }
    public static void main(String[] args) {
	System.out.println("Main");
	new Demo();
	new Demo();
   }
    同步代码块。
  • 代码块里变量的作用域:
    只在自己所在区域(前后的{})内有效;

java 面向对象三

标签:位置   object类   end   字符串   shc   bool   拆箱   自己   引用类型   

原文地址:https://www.cnblogs.com/linbin7/p/14525531.html


评论


亲,登录后才可以留言!