栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【包装类】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【包装类】

目录
  • 包装类
  • java.util.Calendar日历类

包装类

一、包装类: Java是一个面向对象的编程语言,但是Java中的八种基本数据类型却是不面向对象的,为了使用方便和解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八种基本数据类型对应的类统称为包装类,包装类均位于java.lang包。
二、

基本类型对应的包装类(位于java.lang包中)
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharater
booleanBoolean

三、装箱:把基本类型的数据包装到包装类中 即基本类型的数据转换为包装类
四、构造方法:

  1. Integer(int value):构造一个新分配的Integer对象 他表示指定的int值
  2. Integer(String s):构造一个新分配的Integer对象 他表示String参数所指示的int值

注意:传递的字符串必须是基本类型的字符串 否则会抛出异常 例如:"100"正确 "a"会报错

public class BaoZhuangLei {
	public static void main(String[] args) {
		Integer in1 = new Integer(1);
		System.out.println(in1);//1 重写了toString方法
		
		Integer in2 = new Integer("1");
		System.out.println(in2);//1
	}
}

五、静态方法:

  1. static Integer valueOf(int i):返回一个表示指定的int值的Integer实例
  2. static Integer valueOf(String s):返回保存指定的String的值的Integer对象
public class BaoZhuangLei {
	public static void main(String[] args) {
		Integer in3 = Integer.valueOf(1);
		System.out.println(in3);//1

		Integer in4 = Integer.valueOf("1");
		System.out.println(in4);//1
		
		
	}
}

六、拆箱:在包装类中取出基本类型的数据 即包装类转换为基本类型的数据

public class BaoZhuangLei {
	public static void main(String[] args) {
		int i = in1.intValue();
		System.out.println(i);//1
	}
}

七、成员方法:int intValue():以int类型返回该Integer的值
八、自动装箱与拆箱:基本类型的数据和包装类之间可以自动的相互转换

public class BaoZhuangLei {
	public static void main(String[] args) {
		System.out.println("自动装箱与拆箱:==================================================");
		//自动装箱:直接把int类型的整数赋值包装类
		Integer in = 1;//相当于Integer in = new Integer(1);
		//自动拆箱:in是包装类 无法直接参与运算 可以自动转换为基本数据类型 再进行计算
		in = in + 2;//in + 2相当于in.inValue() + 2 = 3 然后in = in.inValue() + 2 = 3又是一个自动装箱
		ArrayList list = new ArrayList();
		//ArrayList集合无法直接存储整数 可以存储Integer包装类
		list.add(1);//隐含了自动装箱 list.add(new Integer(1));
		int a =list.get(0);//隐含了自动拆箱 list.get(0).inValue();
	}
}

九、基本类型转换为字符串类型

  1. 基本类型的值 + “” 最简单的方法
  2. 包装类的静态方法toString(参数) 不是Object类的toString(),而是Object类的toString()的重载形式
  3. String类的静态方法valueOf(参数):static String valueOf(int i):返回int参数的字符串表示形式
public class BaoZhuangLei {
	public static void main(String[] args) {
		System.out.println("基本类型转换为字符串:===============================");
		//方式一
		int i1 = 100;
		String s1 = i1 + "";
		System.out.println(s1 + 200);//100200 字符串相加时拼接
		
		//方式二
		String s2 = Integer.toString(100);
		System.out.println(s2 + 200);//100200
		
		//方式三
		String s3 = String.valueOf(100);
		System.out.println(s3 + 200);//100200
	}
}

十、字符串转换为基本类型:使用包装类的静态方法:parseXXX("字符串类型的数字(如果写“A” 字符串类型的字母 会报错)");例如:
Integer类:static int parseInt(String s)
Double类:static double parseDouble(String s)

import java.util.ArrayList;
public class BaoZhuangLei {
	public static void main(String[] args) {
		int m = Integer.parseInt(s1);
		System.out.println(m - 10);//90
	}
}
java.util.Calendar日历类

一、java.util.Calendar类:日历类 里边提供了很多操作日历字段的方法(YEAR MONTH DAY_OF_MONTH HOUR)
二、Calendar类是一个抽象类 无法直接创建对象使用 里边有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象
三、getInstance()用法:static Calendar getInstance():使用默认时区和语言环境获得一个日历
四、Calendar类的常用成员方法:

  1. public int get(int field):返回给定日历字段的值
  2. public void set(int field,int value):将给定的日历字段设置为给定值
  3. public obstract void add(int field,int amount):根据日历的规则 为给定的日历字段添加或减去指定的时间量
  4. public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象

五、成员方法的参数:

  1. int field:日历类的字段 可以使用Calendar类的静态变量获取
  2. public static final int YEAR = 1;年
  3. public static final int MONTH = 2;月
  4. public static final int DATE = 5;月中的某一天
  5. public static final int DAY_OF_MONTH = 5;月中的某一天
  6. public static final int HOUR = 10;时
  7. public static final int MINUTE = 12;分
  8. public static final int SECOND = 13;秒
import java.util.Calendar;
import java.util.Date;
public class Calendar2 {
	public static void main(String[] args) {
		demo01();
		demo02();
		demo03();
		demo04();
	}
	
private static void demo04() {
	//使用getInstance方法获取Calendar对象
	Calendar c = Calendar.getInstance();
	Date date = c.getTime();
	System.out.println(date);//Wed Aug 14 12:45:48 CST 2019
}


private static void demo03() {
	 //使用getInstance方法获取Calendar对象
	Calendar c = Calendar.getInstance();
	
	//增加两年
	c.add(Calendar.YEAR, 2);
	int year = c.get(Calendar.YEAR);
	System.out.println(year);//2021
	
	//减少三个月
	c.add(Calendar.MONTH, -3);
	int month = c.get(Calendar.MONTH);
	System.out.println(month);//4 西方月份7-3=4
}


private static void demo02() {
	//使用getInstance方法获取Calendar对象
	Calendar c = Calendar.getInstance();
	
	//设置年为9999年
	c.set(Calendar.YEAR, 9999);
	int year = c.get(Calendar.YEAR);
	System.out.println(year);//9999
	
	//设置月为9月
	c.set(Calendar.MONTH, 9);
	int month = c.get(Calendar.MONTH);
	System.out.println(month);//9

	//设置日为9日
	c.set(Calendar.DATE, 9);
	int date = c.get(Calendar.DAY_OF_MONTH);
	System.out.println(date);//9
			
	//设置日为9日
	c.set(Calendar.DAY_OF_MONTH, 9);
	int day = c.get(Calendar.DATE);
	System.out.println(day);
	
	//可以同时设置年月日
	c.set(8888, 8, 8);
	int year2 = c.get(Calendar.YEAR);
	System.out.println(year2);//8888
	int month2 = c.get(Calendar.MONTH);
	System.out.println(month2);//8
	int date2 = c.get(Calendar.DAY_OF_MONTH);
	System.out.println(date2);//8
	int day2 = c.get(Calendar.DATE);
	System.out.println(day2);//8
}


	private static void demo01() {
        //使用getInstance方法获取Calendar对象
		Calendar c = Calendar.getInstance();//多态
		System.out.println(c);//输出的不是地址值 说明getInstance方法被重写了
		
		int year = c.get(Calendar.YEAR);
		System.out.println(year);//2019
		
		int month = c.get(Calendar.MONTH);
		System.out.println(month);//西方的月份0-11 东方的月份1-12 今天是北京时间8月14 而打印的是西方的月份7月

		int date = c.get(Calendar.DAY_OF_MONTH);
		System.out.println(date);//14
		
		int day = c.get(Calendar.DATE);
		System.out.println(day);//14
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881338.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号