JAVA零基础学习2(算术逻辑三元运算符、原码反码补码、标准的类如何描写)

JAVA零基础学习2(算术逻辑三元运算符、原码反码补码、标准的类如何描写)

  • 算术运算符
      • 算术运算符
      • 自增和自减运算符
      • 算术运算符的优先级
      • 示例代码
  • 逻辑运算符
  • 三元运算符
      • 示例代码
        • 示例1:简单的条件判断
        • 示例2:嵌套的三元运算符
  • 原码反码补码
  • foreach
  • switch简化
  • 二维数组
  • 类和对象
  • 标准的类的写法步骤
  • Java小试一试小游戏

算术运算符

在Java中,算术运算符用于执行基本的数学运算。以下是Java中常见的算术运算符及其用法:

算术运算符

  1. 加法运算符(+)
    • 用于两个操作数的加法。
    • 也可以用于字符串的连接。
    int a = 10;
    int b = 20;
    int sum = a + b; // 30String firstName = "John";
    String lastName = "Doe";
    String fullName = firstName + " " + lastName; // John Doe
    

数字进行运算时,数据类型不一样不能运算,需要转成- -样的,才能运算。

类型转换:
隐式转换:
1、取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。整数和小数取值范围大小关系:
double > float > long > int > short > byte

2、byte short char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。
强制转换:
当从较大范围的数据类型转换为较小范围的数据类型时,需要使用强制类型转换。这可能会导致精度丢失或溢出。

// 浮点数转换为整数double myDouble = 9.78;int myInt = (int) myDouble; // 强制类型转换

当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符了。会将前后的数据进行拼接,并产生一个新的字符串。

连续进行" + "操作时,从左到右逐个执行。
1 +99+ "年"加在一起的结果是“100年”

int age = 18;
System. out. print1n("我的年龄是"+ age + "岁"); //"我的年龄是18岁"
System. out . println("我的年龄是" + "age"+"岁"); //"我的年龄是age岁"
System. out. println(1 +2+"abc"+ 2 + 1);//"3abc21"
  1. 减法运算符(-)

    • 用于两个操作数的减法。
    int a = 20;
    int b = 10;
    int difference = a - b; // 10
    
  2. 乘法运算符(*)

    • 用于两个操作数的乘法。
    int a = 10;
    int b = 20;
    int product = a * b; // 200
    
  3. 除法运算符(/)

    • 用于两个操作数的除法。
    • 整数除法会舍弃小数部分。
    int a = 20;
    int b = 10;
    int quotient = a / b; // 2double x = 20.0;
    double y = 3.0;
    double result = x / y; // 6.666...
    
  4. 取模运算符(%)

    • 用于求两个操作数的余数。
    int a = 20;
    int b = 3;
    int remainder = a % b; // 2
    

自增和自减运算符

  1. 自增运算符(++)

    • 将操作数的值加1。
    • 前缀自增(++a)先加1后使用。
    • 后缀自增(a++)先使用后加1。
    int a = 10;
    int b = ++a; // a变为11,b为11
    int c = a++; // a变为12,c为11
    
  2. 自减运算符(–)

    • 将操作数的值减1。
    • 前缀自减(--a)先减1后使用。
    • 后缀自减(a--)先使用后减1。
    int a = 10;
    int b = --a; // a变为9,b为9
    int c = a--; // a变为8,c为9
    

算术运算符的优先级

算术运算符在表达式中的优先级按照以下顺序排列(从高到低):

  1. ++(前缀),--(前缀)
  2. */%
  3. +-
  4. ++(后缀),--(后缀)

括号 () 可以用来改变运算的优先级。

示例代码

public class ArithmeticOperators {public static void main(String[] args) {int a = 10;int b = 3;// 加法int sum = a + b;System.out.println("Sum: " + sum); // 13// 减法int difference = a - b;System.out.println("Difference: " + difference); // 7// 乘法int product = a * b;System.out.println("Product: " + product); // 30// 除法int quotient = a / b;System.out.println("Quotient: " + quotient); // 3// 取模int remainder = a % b;System.out.println("Remainder: " + remainder); // 1// 自增和自减int x = 5;System.out.println("Initial x: " + x); // 5System.out.println("x++: " + x++); // 5System.out.println("After x++: " + x); // 6System.out.println("++x: " + ++x); // 7System.out.println("x--: " + x--); // 7System.out.println("After x--: " + x); // 6System.out.println("--x: " + --x); // 5}
}

通过这些示例,你可以了解Java中算术运算符的基本用法及其操作。掌握这些运算符是编写有效Java代码的基础。

逻辑运算符

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三元运算符

在Java中,三元运算符(也称为条件运算符)是一种简洁的方式来处理简单的条件语句。它的语法如下:

result = condition ? value1 : value2;

这里:

  • condition 是一个布尔表达式。
  • 如果 conditiontrue,则 resultvalue1 的值。
  • 如果 conditionfalse,则 resultvalue2 的值。

示例代码

以下是使用三元运算符的示例代码:

示例1:简单的条件判断
public class TernaryOperatorExample {public static void main(String[] args) {int a = 10;int b = 20;// 使用三元运算符判断较大值int max = (a > b) ? a : b;System.out.println("The maximum value is: " + max);}
}

在这个例子中,a > b 是条件。如果条件为 truemax 将被赋值为 a;否则,max 将被赋值为 b

示例2:嵌套的三元运算符

你也可以嵌套使用三元运算符来处理多个条件:

public class NestedTernaryOperator {public static void main(String[] args) {int a = 5;int b = 10;int c = 15;// 使用嵌套的三元运算符找出最大值int max = (a > b) ? (a > c ? a : c) : (b > c ? b : c);System.out.println("The maximum value is: " + max);}
}

在这个例子中,我们嵌套了三元运算符来比较三个值 abc

原码反码补码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
隐式转换(一般小转大):前面补零

强制转换(一般大转小):前面去掉零

在这里插入图片描述

在这里插入图片描述

foreach

在Java中,foreach 循环(增强型 for 循环)是一种简洁的方法,用于遍历数组或集合。它简化了传统的 for 循环,并且不需要使用索引变量。以下是一些示例,展示了如何使用 foreach 循环遍历数组和集合。

遍历数组
示例代码

public class ForEachExample {public static void main(String[] args) {int[] numbers = {1, 2, 3, 4, 5};// 使用 foreach 循环遍历数组for (int number : numbers) {System.out.println(number);}}
}

在这个示例中,number 是数组 numbers 中的每一个元素。在每次循环迭代中,number 都被赋值为数组中的下一个元素。
在这里插入图片描述
在这里插入图片描述

switch简化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二维数组

在这里插入图片描述
在这里插入图片描述
二维数组遍历
在这里插入图片描述
arr3.length是行数
arr3[1].length是每一行的列数。

类和对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
封装
在这里插入图片描述
private
在这里插入图片描述
在这里插入图片描述
变量前面+this 就是成员位置的name;如果不加一般遵循就近原则。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标准的类的写法步骤

分为四步:
1、属性。
2、空参,可以用快捷键alt+inset。
3、带有全部参数的构造,可以用快捷键alt+inset。
4、get和set方法,一般对private的属性进行,可以用快捷键alt+inset。

package com.heima.demo1;public class text1 {//1、属性private String username ;//eprivate  String password;private  String email;private  String gender;private int age;//2、空参,可以用快捷键alt+insetpublic text1(){};//3、带哟全部参数的构造,可以用快捷键alt+insetpublic text1(String username,String password,String email,String gender,int age){};//记得做赋值this.username=username;this.password=password;this.email=email;this.gender=gender;this.age=age;//4、get和set方法,一般对private的属性进行,可以用快捷键alt+insetpublic String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

在这里插入图片描述

Java小试一试小游戏

奥特曼打小怪兽
需要有两个class 一个是role.java 另一个是play1.java
play1.java 内容

package palyStart;
import java.util.Random;public class paly1 {public static void main(String[] args) {role role1=new role("奥特曼",30,'女');role role2=new role("怪兽",30,'男');role1.showRoleInfo();role2.showRoleInfo();while (true){role1.attack(role2);if(role2.getBlood()==0){System.out.println(role2.getUsername()+"已经被KO!");break;}role2.attack(role1);if(role1.getBlood()==0){System.out.println(role1.getUsername()+"已经被KO!");break;}}}
}

role.java 中的内容

package palyStart;
import java.util.Random;
public class role {private String username;private int blood;private char gender;private String face;//长相随机String[] boyfaces= {"风流俊雅","气字轩昂","相貌英俊","五官端正","相貌平平"," -塌糊涂","面目狰狞"};String[] girlfaces ={"美奂绝伦","沉鱼落雁","婷婷玉立","身材娇好","相貌平平","相貌简陋","惨不忍睹"};public role() {}public role(String username, int blood,char gender) {this.username = username;this.blood = blood;this.gender=gender;setFace(gender);}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}public String getFace() {return face;}public void setFace(char gender) {if(gender=='男'){Random r=new Random();int index=r.nextInt(boyfaces.length);this.face=boyfaces[index];} else if (gender=='女') {Random r=new Random();int index=r.nextInt(girlfaces.length);this.face=girlfaces[index];}else{this.face="怪物";}}/*** 获取* @return username*/public String getUsername() {return username;}/*** 设置* @param username*/public void setUsername(String username) {this.username = username;}/*** 获取* @return blood*/public int getBlood() {return blood;}/*** 设置* @param blood*/public void setBlood(int blood) {this.blood = blood;}public void attack(role role){//输出一个攻击的效果String[] attacks_desc={"%s使出了一招[背心钉],转到对方的身后,一掌向%s背心的灵台穴拍去。","%s使出了一招[游空探爪],飞起身形 自半空中变掌为抓锁向%s。","%s大喝一声,身形下伏,一招[劈雷坠地],捶向%s双腿。","%s运气于掌, -瞬间掌心变得血红,一式[掌心雷],推向%s。","%s阴手翻起阳手跟进,一招[没遮拦] ,结结实实的捶向%s。","%s.上步抢身,招中套招,-招[劈挂连环] ,连环攻向%s"};Random r=new Random();int index=r.nextInt(attacks_desc.length);String KungFu=attacks_desc[index];System.out.printf(KungFu,this.getUsername(),role.getUsername());System.out.println();//随机造成1-20的伤害int hurt=r.nextInt(20)+1;//剩余血量int remainblood= role.getBlood()-hurt;if(remainblood<0){remainblood=0;}role.setBlood(remainblood);//受伤的描述//    injured受伤描述:String[] injureds_desc={"结果%s退了半步,毫发无损","结果给%s造成一处瘀伤","结果一击命中,%s痛得弯下腰","结果%s痛苦地闷哼了一声,显然受了点内伤","结果%s摇摇晃晃,跤摔倒在地","结果%s脸色一下变得惨白,连退了好几步","结果「轰」的一声, %s口中鲜血狂喷而出","结果%s-声惨叫,像滩软泥般塌了下去"};if(remainblood>=90){System.out.printf(injureds_desc[0],role.getUsername());} else if (remainblood>=80&&remainblood<90) {System.out.printf(injureds_desc[1],role.getUsername());} else if (remainblood>=70&&remainblood<80) {System.out.printf(injureds_desc[2],role.getUsername());} else if (remainblood>=60&&remainblood<70) {System.out.printf(injureds_desc[3],role.getUsername());} else if (remainblood>=40&&remainblood<60) {System.out.printf(injureds_desc[4],role.getUsername());} else if (remainblood>=20&&remainblood<40) {System.out.printf(injureds_desc[5],role.getUsername());}else if(remainblood>10&&remainblood<20){System.out.printf(injureds_desc[6],role.getUsername());}else {System.out.printf(injureds_desc[7],role.getUsername());}System.out.println();//            //this 表示动作方法的调用者
//            System.out.println(this.getUsername()+"打了"+role.getUsername()+",造成了"+hurt+"的伤害,"+role.getUsername()+"还剩下"+role.getBlood()+"血量");}public void showRoleInfo() {System.out.println("姓名为:"+getUsername());System.out.println("血量为:"+getBlood());System.out.println("性别为:"+ getGender());System.out.println("长相为:"+ getFace());}
}

运行结果:
在这里插入图片描述
end,继续加油哦!!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Elasticsearch7.11】集合字段 数量大小查询

需求&#xff1a; 有个字符串集合字段&#xff0c;需要查询出 集合大小 大于等于2 的数据 1、字段mapping "belong_account": {"type": "text","analyzer": "ik_max_word","search_analyzer": "ik_smart&qu…

ClusterIP、NodePort、LoadBalancer 和 ExternalName

Service 定义 在 Kubernetes 中&#xff0c;由于Pod 是有生命周期的&#xff0c;如果 Pod 重启它的 IP 可能会发生变化以及升级的时候会重建 Pod&#xff0c;我们需要 Service 服务去动态的关联这些 Pod 的 IP 和端口&#xff0c;从而使我们前端用户访问不受后端变更的干扰。 …

MySQL运维实战之ProxySQL(9.10)proxysql监控

作者&#xff1a;俊达 stats数据库 从stats数据库中可以查到proxysql一些内部组件的状态&#xff0c;如内存使用情况、连接池信息、会话信息、SQL执行状态等。 mysql> show tables from stats; --------------------------------------- | tables …

昇思25天学习打卡营第11天 | ResNet50迁移学习

利用ResNet50进行迁移学习的探索与实践 在人工智能的各个领域中&#xff0c;迁移学习已成为一个极其有效的策略&#xff0c;特别是在图像识别任务中。通过使用预训练模型&#xff0c;我们可以利用在大型数据集&#xff08;如ImageNet&#xff09;上学到的丰富特征&#xff0c;…

Vue 使用 Element UI 组件库

https://andi.cn/page/621589.html

C嘎嘎类与对象拓展

本篇文章是对浅谈C嘎嘎类与对象的拓展 初始化列表&#xff08;初始化&#xff09; 格式&#xff1a;类名&#xff08;类型 形参1, 类型 形参2&#xff09; &#xff1a;&#xff08;冒号&#xff09; 变量【类中声明的变量】&#xff08;形参1&#xff09; , 变量【类中…

基于天地图使用Leaflet.js进行WebGIS开发实战

目录 前言 一、天地图的key 1、创建应用 2、调用限制策略 注&#xff1a; &#xff08;1&#xff09;日服务调用超量会暂时拒绝访问&#xff0c;次日自动开启&#xff1b; &#xff08;2&#xff09;如果服务调用过程中存在数据爬取或者下载行为&#xff0c;服务调用会被自…

【中项】系统集成项目管理工程师-第3章 信息技术服务-3.6服务发展

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

K12智慧校园智能化解决方案

1. 项目背景 “十三五”期间&#xff0c;教育信息化工作旨在为教育改革发展提供动力与手段&#xff0c;目标是到2020年建成与国家教育现代化发展目标相适应的教育信息化体系。 2. 建设需求 智慧校园系统框架解析与建设目标分析&#xff0c;旨在实现教育信息化目标任务。 3.…

【C++航海王:追寻罗杰的编程之路】关于空间配置器你知道多少?

目录 1 -> 什么是空间配置器 2 -> 为什么需要空间配置器 3 -> SGI-STL空间配置器的实现原理 3.1 -> 一级空间配置器 3.2 -> 二级空间配置器 3.2.1 -> 内存池 3.2.2 -> SGI-STL中二级空间配置器设计 3.2.3 -> SGI-STL二级空间配置器之空间申请 …

Java | Leetcode Java题解之第263题丑数

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isUgly(int n) {if (n < 0) {return false;}int[] factors {2, 3, 5};for (int factor : factors) {while (n % factor 0) {n / factor;}}return n 1;} }

C++树形结构(3 树的中心、重心)

目录 一.树的中心&#xff1a; 1.树的概念&#xff1a; 2.树的性质&#xff1a; 性质1&#xff1a; 性质2&#xff1a; 3.树的中心求解&#xff1a; 4.例题&#xff1a; 二.树的重心&#xff1a; 1.基础概念&#xff1a; 2.求解方法&#xff1a; 3.例题&#xff1a;…

毕业/期刊论文发表必备:YOLOv5 / v7 / v8 /v10算法网络结构图【文末提供原型文件下载地址】

前言:Hello大家好,我是小哥谈。同学们在写YOLO算法相关毕业论文/期刊论文的时候,不可避免的会用到相关版本的网络结构图,曾有很多小伙伴私信我索要原型文件,本文就给大家提供YOLOv5/v7/v8/v10版本算法网络结构图及原型文件下载地址。🌈 目录 🚀1.网络结构图 �…

SpringBoot源码深度解析

今天&#xff0c;聊聊SpringBoot的源码&#xff0c;本博客聊的版本为v2.0.3.RELEASE。目前SpringBoot的最新版为v3.3.2&#xff0c;可能目前有些公司使用的SpringBoot版本高于我这个版本。但是没关系&#xff0c;因为版本越新&#xff0c;新增的功能越多&#xff0c;反而对Spri…

2024-07-19 Unity插件 Odin Inspector9 —— Validation Attributes

文章目录 1 说明2 验证特性2.1 AssetsOnly / SceneObjectsOnly2.2 ChildGameObjectsOnly2.3 DisallowModificationsIn2.4 FilePath2.5 FolderPath2.6 MaxValue / MinValue2.7 MinMaxSlider2.8 PropertyRange2.9 Required2.10 RequiredIn2.11 RequiredListLength2.12 ValidateIn…

Python数据风险案例54——人工智能热门概念股爬虫分析其价值(三因子模型)

案例背景 人工智能概念如火如荼的夏天&#xff0c;在这个2024年&#xff0c;我觉得需要提早布局一下这个概念。所以我们找一下A股里面人们的人工智能概念股&#xff0c;然后分析他们的数据应用三因子模型&#xff0c;也就是最经典的资本资产定价模型的衍生版去研究他们各自的投…

51 单片机[8]:串口通信

一、目标 单片机通过串口向电脑发送数据&#xff08;数字递增&#xff09;电脑通过串口控制单片机上的LED 二、基本概念 1. 串口 串口是一种应用十分广泛的通讯接口&#xff0c;串口成本低、容易使用、通信线路简单&#xff0c;可实现两个设备的互相通信。 单片机的串口可以…

Visio绘制的relu激活函数结构图,可导出高清图片,可修改,无水印。

Visio绘制的relu激活函数结构图,可导出高清图片&#xff0c;可修改&#xff0c;无水印。 方便用于小论文写作&#xff0c;方便用于毕业设计。 Visio版本为2021版&#xff0c;可用更高版本打开。 下载地址&#xff1a;地址 图片展示&#xff1a;

【Linux Commands】命令分类整理-命令搜索引擎-速查手册

Linux命令速查网站&#xff1a;https://linux.embeddev.asia 目前已经搜集了600条命令,对每一条命令都有详细的介绍。 本文展示的命令不全是安装系统时自带的。 Linux命令基于Unix哲学&#xff0c;旨在创建简单、短小、可组合的工具。每个命令通常只执行一个任务&#xff0…

open3d:随机采样一致性分割平面

1、背景介绍 随机采样一致性算法&#xff08;RANSAC Random Sample Consensus&#xff09;是一种迭代的参数估计算法&#xff0c;主要用于从包含大量噪声数据的样本中估计模型参数。其核心思想是通过随机采样和模型验证来找到数据中最符合模型假设的点。因此&#xff0c;只要事…