Java之API(上):Boolean

一、前言:

  上次我们将到了 java.lang.* 下的包装类:Integer。这次我讲一下基本数据类型中的:布尔型(boolean)对应的包装类(Boolean)。注意:还有对包装类:Integer进行一些补充。

(1) 首先我们一定的学习了解到能够将基本数据类型的值包装为引用数据类型的对象的类称为包装类

二、介绍Boolean包装类中的方法:

  首先我们知道boolean类型的值永远只有两种:"true"和"false",所以说涉及到它的方法不会有太多。相较于包装类Integer对应的int类型的值的"样式"有很多种、包装类Character 对应的char类型的值可以是汉字、可以是数字、也可以是英文字母或者一些特殊符号,所以像这些举例的包装类涉及的方法肯定会多一些。

(1) 构造方法:(下方会解释怎么用)

 1.首先先解释上面第一个构造方法(也是我们最常见最基本的一个),测试如下:

package com.fs.packet;

public class Test_Boolean01 {
    public static void main(String[] args) {
        //包装类:就是把相应的基本类型的值包装成一个对象
        Boolean bl01 = new Boolean(true); //这里的参数value的类型一定是:boolean
        System.out.println("对象bl01所指向的值为:"+bl01);
        Boolean bl02 = new Boolean(false);
        System.out.println("对象bl02所指向的值为:"+bl02);
    }
}

  代码运行结果:(可以发现输出的:都是各自对象所指向的boolean值) 

2. 接着来看上面第二个构造方法:

<1>它的意思其实是只要参数:String s 的值不为null(空),且不管输入的字符串是大小写,只要是组成"true"这个样子的,它的对象所指向的值都是布尔型"true",测试如下:

package com.fs.packet;

public class Test_Boolean01 {
    public static void main(String[] args) {
        //无论是全部小写、全部大写还是大小写相互间隔都有的情况下:只要与”true“一样,对象的表示的值就是true
        Boolean b1 = new Boolean("true");
        Boolean b2 = new Boolean("TRUE");
        Boolean b3 = new Boolean("tRUE");
        Boolean b4 = new Boolean("trUe");
        if(b4.equals(true)){ //这个方法后面会讲到原理
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        if(b4){  //彻底的验证构造方法创建的对象指向的值是布尔型
            System.out.println("b4对象指向的值是布尔型值,不是字符串");
        }
        System.out.println("b1,b2,b3,b4对应所指向的值分别是:"+b1+" "+b2+" "+b3+" "+b4);
    }
}

代码运行结果:(可以发现输出的:都是各自对象所指向的boolean值)  

 <2> 当然也是只要不为null(空),且忽略大小写的影响,只要是组成"false"这个样子的,它的对象所指向的值都是布尔型"false",测试如下:

package com.fs.packet;

public class Test_Boolean01 {
    public static void main(String[] args) {
        //无论是全部小写、全部大写还是大小写相互间隔都有的情况下:只要与”false“一样,对象的表示的值就是false
        Boolean b1 = new Boolean("false");
        Boolean b2 = new Boolean("FALSE");
        Boolean b3 = new Boolean("faLSE");
        Boolean b4 = new Boolean("FALse");
        if(b1.equals(true)){ //这个方法后面会讲
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        if(!b1){  //彻底的验证构造方法创建的对象指向的值是布尔型
            // 注意这里变成!b1(非b1),因为不这样写:因为b1对象指向的值是false,就不会输出提示,改成非变成true就没事了
            System.out.println("b1对象指向的值是布尔型值,不是字符串");
        }
        System.out.println("b1,b2,b3,b4对应所指向的值分别是:"+b1+" "+b2+" "+b3+" "+b4);
    }
}

 代码运行结果:(可以发现输出的:都是各自对象所指向的boolean值)  

<3>也就是如果是空(null)、空格、或者字符串是其他除了"true"与"false"以外的任意字符串等等,它的对象所指向的boolean值都是false。测试如下:

package com.fs.packet;

public class Test_Boolean01 {
    public static void main(String[] args) {
        //无论是全部小写、全部大写还是大小写相互间隔都有的或者是数字、其他特殊符号的情况下:只要与"true"或者"false"不一样,对象的表示的值就是false
        Boolean b1 = new Boolean("123");  //测试数字
        Boolean b2 = new Boolean("abc");  //测试其他英文字母组合
        Boolean b3 = new Boolean("");  //测试空(null)
        Boolean b4 = new Boolean(" ");  //测试空格
        if(b1.equals(false)){ //这里下面一样会介绍这个方法,其实就是和截图里的解释的意思一样
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        if(!b1){  //彻底的验证构造方法创建的对象指向的值是布尔型
            // 注意这里变成!b1(非b1),因为不这样写:因为b1对象指向的值是false,就不会输出提示,改成非变成true就没事了
            System.out.println("b1对象指向的值是布尔型值,不是字符串");
        }
        System.out.println("b1,b2,b3,b4对应所指向的值分别是:"+b1+" "+b2+" "+b3+" "+b4);
    }
}

  代码运行结果:(可以发现输出的:都是各自对象所指向的boolean值) 

(2) 其他有趣方法:

1.就是上面测试时用到的equals()方法:

言外之意就是讲一个Boolean对象指向的值与参数里的那个对象指向的值如果一样返回true,否则返回false。

<1>其他测试已经在上面测试完,现在展示空(null)与空格情况。

package com.fs.packet;

public class Test_Boolean01 {
    public static void main(String[] args) {
        Boolean b3 = new Boolean("");  //测试空(null)
        Boolean b4 = new Boolean(" ");  //测试空格
        if(b3.equals(false)){
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        if(b4.equals(false)){
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        System.out.println("b3,b4对应所指向的值分别是:"+b3+" "+b4);
    }
}

代码运行结果:(我们发现了对象为null,或者空格情况下,它与参数对象指向的值:都是false,相同,所以都输出yes)

2. 就是与我们之前讲包装类:Integer 时和它很像的一些方法:(就是基本数据类型对象(引用数据类型)之间的转化时可以用的方法)

这里我简单讲吧:因为讲Integer时讲的很细,自己可以拿方法去试一试

<1>Boolean -> boolean

<2> String -> boolean

<3>

boolean -> String

Boolean -> String

<4>

boolean -> Boolean

String -> Boolean

三、补充上次包装类Integer: 

(1)案例:

package com.fs.packet;

public class Test_Integer01 {
    public static void main(String[] args) {
        //Integer
        int value = 10;
        Integer it = new Integer(value);
        System.out.println("it对象指向的值为:"+it);
        //jdk 1.5 之后
        //可以这么写
        Integer it1 = 20;
        System.out.println("it1对象指向的值为:"+it1);
    }
}

代码运行结果: (结果没有任何问题,分别输出各自对象所指向的值)

原因:

为什么说在jdk1.5之前不行:因为 15 是不是一个基本数据类型,它是值类型,而 it2 是一个对象,因为对象是属于引用类型的,它们两个存的值都不一样,不能这样直接赋值。但是在jdk1.5之后,为了简化我们编程的过程,可以直接这么写,我们把这个过程叫做:自动装箱 。(也就是本来要写二步骤,但是直接可以省略第一步,直接自动包装基本数据类型成对应的对象(引用类型),也就是其他包装类也能这样简写,虚拟机它会在底层,内存自动new一个对象帮你封装,不用自己写)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/191474.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PCIE链路训练-状态机描述4

Recovery Recovery.RcvrLock &#xff08;1&#xff09;如果link是在8.0GT/s或以上的速率工作&#xff0c;那么rx只会认为当前lane获得Block alignment之后收到的TS0&#xff0c;TS1&#xff0c;TS2是有效的。如果进入当前状态是从L1或recovery.speed或L0s&#xff0c;获取Blo…

redis报错3

INFO: Initializing SpringDispatcherServletdispatcherServlet

Echarts title标题配置项的使用 更改颜色 副标题

title配置项主要是对图表的标题进行配置 title配置项所有属性文档 title&#xff1a; { ...... }设置标题 副标题 text: 简单创建柱形图,//图表标题 subtext: 副标题,如果想对副标题设置 超链接 边框 颜色 宽度…等 比如&#xff1a;设置超链接 sublink:‘…’, 设置标题位置…

nodejs+vue+python+PHP+微信小程序-婚纱摄影预约系统的设计与实现-安卓-计算机毕业设计

本婚纱摄影预约系统主要包括个人中心、套系风格管理、用户管理、摄影师管理、婚纱套系管理、婚纱套系订单管理、客片欣赏管理、客户样片管理、摄影咨询管理、客户选片管理、系统管理等多个模块。它帮助婚纱摄影预约实现了信息化、网络化&#xff0c;通过测试&#xff0c;实现了…

Vue+ElementUI+C#技巧分享:周数选择器

文章目录 前言一、周数的计算逻辑1.1 周数的定义1.2 年初周数的确定1.3 周数的计算方法 二、VueElementUI代码实现2.1 计算周数2.2 获取周的日期范围2.3 根据周数获取日期范围2.4 控件引用2.4.1 控件引用代码分析2.4.2 初始化变量代码分析 2.5 周数选择器完整代码 三、C#后端代…

Java8实战-总结49

Java8实战-总结49 CompletableFuture&#xff1a;组合式异步编程对多个异步任务进行流水线操作构造同步和异步操作将两个 CompletableFuture 对象整合起来&#xff0c;无论它们是否存在依赖 CompletableFuture&#xff1a;组合式异步编程 对多个异步任务进行流水线操作 构造同…

设计模式—接口隔离原则(ISP)

1.背景 2002 年罗伯特C.马丁给“接口隔离原则”的定义是&#xff1a;客户端不应该被迫依赖于它不使用的方法&#xff08;Clients should not be forced to depend on methods they do not use&#xff09;。该原则还有另外一个定义&#xff1a;一个类对另一个类的依赖应该建立…

【如何修改输入法切换键】

操作 以win10为例&#xff0c;点开系统设置&#xff0c;选择时间和语言 选择语言&#xff0c;找到首选语言中的中文&#xff0c;点击选项 点击其中的微软输入法 选择按键 在按键中进行输入法切换按键的选择

流量分析-PhishingEmail_WriteUp

一、题目问题 问题1&#xff1a;黑客的email名称 问题2&#xff1a;黑客向几人发送了钓鱼邮件 问题3&#xff1a;黑客传输的木马文件名 问题4&#xff1a;下载并运行了木马文件的人的email名称和ip地址&#xff0c;用“-”连接 问题5&#xff1a;黑客用于反弹shell的主机i…

Java游戏制作——王者荣耀

一.准备工作 首先创建一个新的Java项目命名为“王者荣耀”&#xff0c;并在src下创建两个包分别命名为“com.sxt"、”com.stx.beast",在相应的包中创建所需的类。 创建一个名为“img”的文件夹来储存所需的图片素材。 二.代码呈现 package com.sxt;import javax.sw…

大屏可视化编辑器

前言&#xff1a; 乐吾乐Le5le大屏可视化设计器&#xff0c;零代码实现物联网、工业智能制造等领域的可视化大屏、触摸屏端UI以及工控可视化的解决方案。同时也是一个Web组态工具&#xff0c;支持2D、3D等多种形式&#xff0c;用于构建具有实时数据展示、监控预警、丰富交互的组…

【算法】链表-20231127

这里写目录标题 一、面试题 02.02. 返回倒数第 k 个节点二、82. 删除排序链表中的重复元素 II三、141. 环形链表 一、面试题 02.02. 返回倒数第 k 个节点 提示 简单 130 相关企业 实现一种算法&#xff0c;找出单向链表中倒数第 k 个节点。返回该节点的值。 注意&#xff1a;本…

设计模式之十二:复合模式

模式通常被一起使用&#xff0c;并被组合在同一个解决方案中。 复合模式在一个解决方案中结合两个或多个模式&#xff0c;以解决一般或重复发生的问题。 首先重新构建鸭子模拟器&#xff1a; package headfirst.designpatterns.combining.ducks;public interface Quackable …

Java小游戏飞翔的小鸟

游戏界面 运行界面 开发准备 1、eclipse开发工具 二、创建游戏窗口 Mains类作为主类&#xff0c;在mian方法下定义一个m1()方法&#xff0c;设置窗口。 //定义一个初始化的游戏窗口方法 public static void m1() {//获取底层窗口界面的工具类JFrame jf new JFrame();//创建…

The module to import is incompatible with the current project【鸿蒙开发-BUG已解决】

文章目录 项目场景:问题描述原因分析:解决方案:心得体会:知识点OpenHarmony:HarmonyOS:项目场景: 报错: The module to import is incompatible with the current project 问题描述 希望通过 import module 将该模块引入到我的项目。 导入后出现错误,因为项目和模块…

【挑战业余一周拿证】一、亚马逊云科技简介 - 第 1 节 - 模块 1 简介

CSDN 官方中文视频&#xff08;免费&#xff09;&#xff1a;点击进入 一、亚马逊云科技简介 第 1 节 - 模块 1 简介 1、讲师&#xff1a;李锦鸿 部门&#xff1a;亚马逊云科技培训与认证部门 方向&#xff1a;从事数据中心及云计算相关产品与解决方案工作 课程&#xff…

Java 设计模式之命令模式

命令模式 介绍 命令模式是一种行为类设计模式&#xff0c;核心是将每种请求或操作封装为一个独立的对象&#xff0c;从而可以集中管理这些请求或操作&#xff0c;比如将请求队列化依次执行、或者对操作进行记录和撤销。 命令模式通过将请求的发送者&#xff08;客户端&#x…

【批量修改文件名,并去掉括号】

操作 一、 批量修改文件名操作二、去除括号 一、 批量修改文件名操作 在浏览器等下载很多图片后&#xff0c;命名顺序乱七八糟&#xff0c;想要将图片进行重新命名&#xff0c;从数字1开始 首先&#xff0c;全选文件夹中的图片 右键&#xff0c;重明明&#xff0c;选择一张图…

计算机图形学-变换基础

坐标系转换历程模型坐标系 -> 世界坐标系 -> 摄像机坐标系 -> 视口&#xff08;屏幕&#xff09;坐标系 变换 仿射变换和线性变换线性&#xff1a;旋转 缩放 镜像 切变放射&#xff1a; 平移 平移 2D变换矩阵 3D变换矩阵 旋转 2D旋转矩阵 //2D 旋转private (float,…

sql语句在字段中使用select

有两个表如下&#xff1b;产品表&#xff0c;产品评论表&#xff1b; 查询全部产品信息和每种产品的评论数量&#xff1b; 这也是子查询的一种&#xff1b; select * from product1; select * from comment; SELECT product1.*,(select count(id) from comment where product1…