Java读书笔记二(封装类)
1.介绍
都知道java中基本数据类型有非常多,比方string,int……,可是基本数据类型与对象之间是不同的。但非常多情况下,我们希望将基本数据类型当作对象使用,这时候就须要用到封装类。
2.封装类对象基本知识
2.1.首先封装类对象有自己的几个特性。
1.对象不可变,是属于final类型的对象
2.不同意继承
2.2.怎样创建封装类对象
在java中每种数据类型都由其相应的封装类。
每种封装类都有其各自的构造器。
<span style="font-size:18px;"><span style="font-family:SimSun;font-size:18px;">package com.Fengzhuanglei; public class Sample12_1 {
public static void main(String[] args)
{
//Character类构造器
Character c1=new Character('H');
//打印Character对象
System.out.println("Character封装类对象封装的值为:"+c1+"。");
//Boolean类构造器
Boolean b1=new Boolean(true);
Boolean b2=new Boolean("TRUE");
Boolean b3=new Boolean("FaLsE");
Boolean b4=new Boolean("HaHa!!!");
//打印4个Boolean对象
System.out.print("Boolean封装类对象封装的值为"+b1);
System.out.print("、"+b2);
System.out.print("、"+b3);
System.out.println("、"+b4+"。");
//Float类构造器
Float f1=new Float(12.56f);
Float f2=new Float(12.56);
Float f3=new Float("12.56f");
//打印3个Float对象
System.out.print("Float封装类对象封装的值为:"+f1);
System.out.print("、"+f2);
System.out.println("、"+f3+"。 ");
//其它类型构造器
Integer i1=new Integer(50);
Integer i2=new Integer("50");
System.out.print("Integer封装类对象封装的值为:"+i1);
System.out.println("、"+i2+"。");
Integer i3=new Integer("qq50");
}
}
</span></span>也能够採用静态工厂的方法来创建
<span style="font-size:18px;"><span style="font-family:SimSun;font-size:18px;">package com.Fengzhuanglei; public class Sample12_8 {
public static void main(String[] args)
{
//将字符串转换为基本数据类型
double d1=Double.parseDouble("36.8");
System.out.println("将字符串形式转换为double值,其值为:"+d1);
//用基本数据类型创建对象
Double d2=Double.valueOf(36.8);
System.out.println("用double值创建了Double对象,其值为:"+d2);
//用字符串类型创建对象
Double d3=Double.valueOf("36.8");
System.out.println("用字符串创建了Double对象。其值为:"+d3);
//将字符串以三进制形式转换为基本数据类型值
int i1=Integer.parseInt("1011010",3);
System.out.println("将字符串以三进制形式转换为int值,其值为:"+i1);
//用字符串以三进制形式创建对象
Integer i2=Integer.valueOf("1011010",3);
System.out.println("用字符串以三进制形式创建Integer对象,其值为:"+i2);
}
}
</span></span>
3.数据类型之间的转换
3.1.基本数据类型→→→→→→字符串
非静态方法
我们经经常使用到的非静态方法莫过于ToString方法。该方法没有參数,返回值为String类型的字符串操作
<span style="font-size:18px;">package com.Fengzhuanglei; import java.math.BigInteger; public class Sample12_14 {
public static void main(String[] args) {
// 创建了两个BigInteger对象bi1与bi2
BigInteger bi1 = new BigInteger("111119223372036854775808");
BigInteger bi2 = new BigInteger("111110000000000000000000");
// 声明了一个BigInteger引用bi3
BigInteger bi3;
System.out.println("bi1 = " + bi1 + "。bi2 = " + bi2 + "。");
// 使用加操作
bi3 = bi1.add(bi2);
System.out.println("bi1 + bi2 = " + bi3);
// 使用减操作
bi3 = bi1.subtract(bi2);
System.out.println("bi1 - bi2 = " + bi3);
// 使用乘操作
bi3 = bi1.multiply(bi2);
System.out.println("bi1 * bi2 = " + bi3);
// 使用除操作
bi3 = bi1.divide(bi2);
System.out.println("bi1 / bi2 = " + bi3);
// 使用求余操作
bi3 = bi1.mod(bi2);
System.out.println("bi1 % bi2 = " + bi3);
// 使用取负数操作
bi3 = bi1.negate();
System.out.println("-bi1 = " + bi3);
// 取bi1的符号
if (bi1.signum() == 1) {
System.out.println("bi1 为正数。其符号为'+'! ! !");
}
// 比較bi1与bi2的大小
if (bi1.compareTo(bi2) > 0) {
System.out.println("bi1 大于 bi2 。。! ");
}
}
}
</span>
静态方法
静态方法就是採用不可变的封装类对象自身的方法,详细例如以下
<span style="font-size:18px;">package com.Fengzhuanglei; public class Sample12_5 {
public static void main(String[] args)
{
//声明原始值
boolean bl=false;
byte b=-23;
char c='G';
short s=128;
int i=20;
long l=49L;
float f=32.3F;
double d=46.5;
//打印转换前的原始值
System.out.println("=======================转换前的"
+"原始值=========================");
System.out.println("bl="+bl+", b="+b+", c="+c+", s="+s+", i="+i+", l="+l+", f="+f+", d="+d);
//声明5个字符串引用
String s1,s2,s3,s4,s5;
//Boolean封装器提供的静态转换字符串方法
System.out.println("=======================Boolean"
+"封装类=========================");
s1=Boolean.toString(bl);
System.out.println("bl转换后的结果为:"+s1);
//Byte封装器提供的静态转换字符串方法
System.out.println("=======================Byte"
+"封装类============================");
s1=Byte.toString(b);
System.out.println("b转换后的结果为:"+s1);
//Short封装器提供的静态转换字符串方法
System.out.println("=======================Short"
+"封装类===========================");
s1=Short.toString(s);
System.out.println("s转换后的结果为:"+s1);
//Character封装器提供的静态转换字符串方法
System.out.println("=======================Character"+
"封装类=======================");
s1=Character.toString(c);
System.out.println("c转换后的结果为:"+s1);
//Integer封装器提供的静态转换字符串方法;
System.out.println("=======================Integer"+
"封装类=========================");
s1=Integer.toString(i);
//将i值以四进制输出
s2=Integer.toString(i,4);
s3=Integer.toBinaryString(i);
s4=Integer.toOctalString(i);
s5=Integer.toHexString(i);
System.out.println("i转换后为"+s1+" 转换为四进制后为"
+s2+" 转换为二进制后为"+s3);
System.out.println("转换为八进制后为"+s4+" 转换为十六进制后为"+s5);
//Long封装器提供的静态转换字符串方法
System.out.println("=======================Long"
+"封装类============================");
s1=Long.toString(l);
//将l值以四进制输出
s2=Long.toString(l,7);
s3=Long.toBinaryString(l);
s4=Long.toOctalString(l);
s5=Long.toHexString(l);
System.out.println("l转换后为"+s1
+" 转换为七进制后为"+s2+" 转换为二进制后为"+s3);
System.out.println("转换为八进制后为"+s4+" 转换为十六进制后为"+s5);
//Float封装器提供的静态转换字符串方法
System.out.println("=======================Float"
+"封装类===========================");
s1=Float.toString(f);
s2=Float.toHexString(f);
System.out.println("f转换后为"+s1+" 转换为十六进制后为"+s2);
//Double封装器提供的静态转换字符串方法
System.out.println("=======================Double"
+"封装类==========================");
s1=Double.toString(d);
s2=Double.toHexString(d);
System.out.println("d转换后为"+s1+" 转换为十六进制后为"+s2);
}
}
</span>
3.2.字符串→→→→→→基本数据类型
相同字符串与基本数据类型之间的转换也能够採用静态和非静态方法来操作
非静态方法
须要将封装类对象的值提取时。一般採用的是xxxValue中的一系列方法,详细例如以下。
<span style="font-size:18px;">package com.Fengzhuanglei; public class Sample12_6 {
public static void main(String[] args) {
// 将封装的int值转换为其它数值类型
Integer integer = new Integer("52"); byte b = integer.byteValue();
double d = integer.doubleValue();
System.out
.println("将字符串“52”转换为byte值以及double值,其值为:" + b + "、" + d + "。");
// 将封装的float值转换为其它数值类型
Float floatF = new Float("25.5");
float f = floatF.floatValue();
d = floatF.doubleValue();
System.out.println("将字符串“52”转换为float值以及double值。其值为:" + f + "、" + d
+ "。");
}
}
</span>
静态方法
假设採用静态方法的话。一般採用parseXXX类似的方法。详细例如以下。
<span style="font-size:18px;">package com.Fengzhuanglei; public class Sample12_7 {
public static void main(String[] args) {
// 将字符串转换为基本数据类型boolean
boolean b = Boolean.parseBoolean("FaLse");
System.out.println("将字符串“FaLse”成功转换为boolean值,其值为:" + b);
// 将字符串转换为基本数据类型double
double d = Double.parseDouble("35.8");
System.out.println("将字符串“35.8”成功转换为double值,其值为:" + d);
// 将字符串中的数字依照二进制的方式解析,并转换为int基本数据类型
int i = Integer.parseInt("10010111", 2);
System.out.println("将字符串“10010111”成功依照二进制形式转换int值,其值为:" + i);
// 将字符串中的数字依照三进制的方式解析,并转换为long基本数据类型
long l = Long.parseLong("10010111", 3);
System.out.println("将字符串“10010111”成功依照三进制形式转换long值,其值为:" + l);
}
}
</span>
4.大型数值计算
在我们寻常的开发中可能有时算数的范围超过了int或者long的范围,此时该怎么办?在java中专门为我们提供了用来进行不大小限制计算的类。
1.BigInteger:用来计算整数之间的操作
<span style="font-size:18px;">package com.Fengzhuanglei; import java.math.BigInteger; public class Sample12_14 {
public static void main(String[] args) {
// 创建了两个BigInteger对象bi1与bi2
BigInteger bi1 = new BigInteger("111119223372036854775808");
BigInteger bi2 = new BigInteger("111110000000000000000000");
// 声明了一个BigInteger引用bi3
BigInteger bi3;
System.out.println("bi1 = " + bi1 + ",bi2 = " + bi2 + "。 ");
// 使用加操作
bi3 = bi1.add(bi2);
System.out.println("bi1 + bi2 = " + bi3);
// 使用减操作
bi3 = bi1.subtract(bi2);
System.out.println("bi1 - bi2 = " + bi3);
// 使用乘操作
bi3 = bi1.multiply(bi2);
System.out.println("bi1 * bi2 = " + bi3);
// 使用除操作
bi3 = bi1.divide(bi2);
System.out.println("bi1 / bi2 = " + bi3);
// 使用求余操作
bi3 = bi1.mod(bi2);
System.out.println("bi1 % bi2 = " + bi3);
// 使用取负数操作
bi3 = bi1.negate();
System.out.println("-bi1 = " + bi3);
// 取bi1的符号
if (bi1.signum() == 1) {
System.out.println("bi1 为正数。其符号为'+'!! ! ");
}
// 比較bi1与bi2的大小
if (bi1.compareTo(bi2) > 0) {
System.out.println("bi1 大于 bi2 !!!");
}
}
}
</span>2.BigDecimal:用来精确的计算浮点数之间的操作
<span style="font-size:18px;">package com.Fengzhuanglei;
import java.math.*;
public class Sample12_16
{
public static void main(String[] args)
{
//分别创建值为3.8与0.7的BigDecimal对象bd1与bd2
BigDecimal bd1=new BigDecimal("3.8");
BigDecimal bd2=new BigDecimal("0.7");
//创建值为3.800的BigDecimal对象bd3
BigDecimal bd3=new BigDecimal("3.800");
//声明一个BigDecimal类型的引用bd4
BigDecimal bd4;
//打印对象bd1、bd2与bd3中封装的值
System.out.println("bd1 = "+bd1+",bd2 = "+bd2+"。bd3 = "+bd3+"。");
//使用加操作
bd4=bd1.add(bd2);
System.out.println("bd1 + bd2 = "+bd4);
//使用减操作
bd4=bd1.subtract(bd2);
System.out.println("bd1 - bd2 = "+bd4);
//使用乘操作
bd4=bd1.multiply(bd2);
System.out.println("bd1 * bd2 = "+bd4);
//使用除操作
bd4=bd1.divide(bd2,BigDecimal.ROUND_HALF_DOWN);
System.out.println("bd1 / bd2 = "+bd4);
bd4=bd3.divide(bd2,BigDecimal.ROUND_HALF_DOWN);
System.out.println("bd3 / bd2 = "+bd4);
//将bd1与bd2进行比較
bd2=new BigDecimal("3.800");
if(bd1.compareTo(bd2)==0)
{
System.out.println("bd1 = "+bd1+" bd2 = "+bd2+" 则bd1与bd2是相等的! !");
}
}
}
</span>
5.总结
本篇主要介绍了java中基本数据类型之间的转换,通常是通过封装类来进行相互之间的转换。另外在做数据算法时。java也为我们提供了方面的函数进行操作。
Java读书笔记二(封装类)的更多相关文章
- java读书笔记二
这是我的一些读书笔记: 我研究了一下面向对象: 面向对象符合人类看待事物的一般规律,对象的方法的实现细节是包装的,只有对象方法的实现者了解细节 我觉得面向过程是由过程.步骤.函数组成,过程是核心,面向 ...
- Java 读书笔记 (二) 对象和类
Java 作为一种面向对象语言,支持以下基本概念: 多态 继承 封闭 抽象 类 对象 实例 方法 重载 对象: 是类的一个实例,有状态和行为.以人为例,黄种人.白种人.黑种人为类,每一个具体的人为类的 ...
- head first java读书笔记
head first java读书笔记 1. 基本信息 页数:689 阅读起止日期:20170104-20170215 2. 标签 Java入门 3. 价值 8分 4. 主题 使用面向对象的思路介绍J ...
- think in java 读书笔记 3 —— 数据报
目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 概要 1. 数据报基本知识 2 ...
- think in java 读书笔记 2 —— 套接字
目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 概要 1. 套接字基本知识 2 ...
- think in java 读书笔记 1 ——移位
目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 在Think in Java中 ...
- Thinking In Java读书笔记--对象导论
Thinking In Java读书笔记--对象导论[对象]服务提供者==>将对象看做一个服务提供者[程序员分类][类创造者]/[客户端程序员] [访问控制存在的原因?][1]客户端程序员无法触 ...
- Java读书笔记1
Java逍遥游记读书笔记 前言 必须先来一句,这是入门级别,高手勿喷~ 写Android的时候总有一些语句不是很理解,其实大部分是Java的内容,所以想系统的学下Java. 这本书——<Java ...
- spring揭秘 读书笔记 二 BeanFactory的对象注册与依赖绑定
本文是王福强所著<<spring揭秘>>一书的读书笔记 我们前面就说过,Spring的IoC容器时一个IoC Service Provider,而且IoC Service Pr ...
随机推荐
- SGU 171.Sarov zones
简单的贪心.优先weight最大的,优先匹配Q值大的地区 code #include <iostream> #include <algorithm> #include < ...
- centos7上安装与配置Tomcat7(整理篇)
1.检查tomcat7是否已经安装 rpm -qa | grep tomcat ps -ef | grep tomcat 第一条命令查看是用rpm安装过tomcat,由于我们倾向于安装解压版的tomc ...
- 脚本学习python和linux-shell和jQuery(javascript)
使用脚本可以方便管理,使用计算机. 打算学脚本来更好地用计算机系统,特别是Linux. 学python因为它开源,而且是C家族的语言,本来也是课程需要,再加上它确实很好,所以非常主打,之前看过perl ...
- Meta元素可视区
一.网页手机wap2.0网页的head里加入下面这条元标签,在iPhone的浏览器中页面将以原始大小显示,并不允许缩放. <meta name="viewport" cont ...
- 根据select不同的选项实现相应input框添加项的显示
实现效果: @1.单击包时,显示包时的添加项 @2.单击包里程,显示包里程的添加项 二 代码实现: 给select添加change事件 获取当前select的value 根据value判断对象显示其 ...
- Javascript 访问网页弹出qq
先在网页的正文结束位置 加上引用代码 代码如下 <SCRIPT type="text/javascript" src="/QQ.js"></S ...
- IPython学习笔记
IPython 前言 Life is short, you need Python 最近开始学习数据挖掘,需要使用到Python,其实大学时代就有接触过Python,但是却始终没有系统的进行学习过. ...
- import uno 错误
安装aeroolib 模块后,提示没有 uno 相关段一些模块, 原因是这些模块是 openoffice 中段,需要先安装 openoffice. 1:清除所有 libreoffice 软件, su ...
- Java Web开发介绍
转自:http://www.cnblogs.com/pythontesting/p/4963021.html Java Web开发介绍 简介 Java很好地支持web开发,在桌面上Eclipse RC ...
- outline属性
outline(轮廓)用于设置元素周围的一条线,用于元素边框的外围,可起到突出元素的作用. outline属性所有浏览器都支持,如果规定了 !DOCTYPE,则 IE8 支持 outline 属性. ...