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.rhkb.cn/news/381088.html

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

相关文章

贪吃蛇超精讲(C语言)

前言 如果你还是个萌新小白&#xff0c;那么该项目的攻克过程一定会十分艰难。虽然作者已经将文章尽可能写的逻辑清晰&#xff0c;内容详细。但所谓“纸上得来终觉浅”&#xff0c;在讲到陌生结构和函数时&#xff0c;大家请一定自己动手去敲一遍代码&#xff0c;这很重要&…

一次Golang单体架构中的复杂长函数的重构实践和思考

在现代应用程序开发中&#xff0c;信息流&#xff08;Feed&#xff09;是许多平台核心功能的一部分。信息流往往会聚合大量的数据&#xff0c;构建这样一个信息流列表是一个复杂的任务。需要从多个微服务和数据库中获取大量数据&#xff0c;包括用户、频道、标签、等级、用户状…

【Langchain大语言模型开发教程】基于文档问答

&#x1f517; LangChain for LLM Application Development - DeepLearning.AI Embedding&#xff1a; https://huggingface.co/BAAI/bge-large-en-v1.5/tree/main 学习目标 1、Embedding and Vector Store 2、RetrievalQA 引包、加载环境变量 import osfrom dotenv import…

react开发-配置开发时候@指向SRC目录

这里写目录标题 配置开发时候指向SRC目录VScode编辑器给出提示总体1.配置react的 2.配置Vscode的1.配置react的2,配置VSCode的提示支持 配置开发时候指向SRC目录VScode编辑器给出提示 总体1.配置react的 2.配置Vscode的 1.配置react的 1. 我么需要下载一个webpack的插件 这样…

Java案例斗地主游戏

目录 一案例要求&#xff1a; 二具体代码&#xff1a; 一案例要求&#xff1a; &#xff08;由于暂时没有学到通信知识&#xff0c;所以只会发牌&#xff0c;不会设计打牌游戏&#xff09; 二具体代码&#xff1a; Ⅰ&#xff1a;主函数 package three;public class test {…

filebeat,kafka,clickhouse,ClickVisual搭建轻量级日志平台

springboot集成链路追踪 springboot版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.3</version><relativePath/> <!-- lookup parent from…

CentOS 7报错:yum命令报错 “ Cannot find a valid baseurl for repo: base/7/x86_6 ”

参考连接&#xff1a; 【linux】CentOS 7报错&#xff1a;yum命令报错 “ Cannot find a valid baseurl for repo: base/7/x86_6 ”_centos linux yum search ifconfig cannot find a val-CSDN博客 Centos7出现问题Cannot find a valid baseurl for repo: base/7/x86_64&…

88个群智能算法优化BP神经网络 多特征输入单输出回归预测Matlab程序

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、BP神经网络原理二、优化BP神经网络初始权重过程三、程序内容3.1 88个优化算法清单3.2 实验数据3.3 实验结果 代码获取 前言 在Matlab中优化神经网络的初始权…

图论模型-迪杰斯特拉算法和贝尔曼福特算法★★★★

该博客为个人学习清风建模的学习笔记&#xff0c;部分课程可以在B站&#xff1a;【强烈推荐】清风&#xff1a;数学建模算法、编程和写作培训的视频课程以及Matlab等软件教学_哔哩哔哩_bilibili 目录 ​1图论基础 1.1概念 1.2在线绘图 1.2.1网站 1.2.2MATLAB 1.3无向图的…

【毕业论文】| 基于Unity3D引擎的冒险游戏的设计与实现

&#x1f4e2;博客主页&#xff1a;肩匣与橘 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由肩匣与橘编写&#xff0c;首发于CSDN&#x1f649; &#x1f4e2;生活依旧是美好而又温柔的&#xff0c;你也…

学生成绩管理系统(C语言)

系统分析 1. 主菜单的实现 2. 增加人员功能的实现 3. 删除数据功能的实现 4. 编辑人员功能的实现 5. 排序功能的实现 6. 输出功能 7. 查找信息功能 具体代码 #include <stdio.h> #include <string.h> #include <stdlib.h> #define SIZE 100000typedef struc…

level 6 day2-3 网络基础2---TCP编程

1.socket&#xff08;三种套接字&#xff1a;认真看&#xff09; 套接字就是在这个应用空间和内核空间的一个接口&#xff0c;如下图 原始套接字可以从应用层直接访问到网络层&#xff0c;跳过了传输层&#xff0c;比如在ubtan里面直接ping 一个ip地址,他没有经过TCP或者UDP的数…

MVCC数据库并发控制技术

一、引言 MVCC&#xff08;Multi-Version Concurrency Control&#xff09;是一种广泛使用的数据库并发控制技术&#xff0c;它允许数据库读操作和写操作并发执行&#xff0c;而无需加锁整个表或行&#xff0c;从而大大提高了数据库的并发性能和吞吐量。MVCC主要被应用于支持事…

最新全新UI异次元荔枝V4.4自动发卡系统源码

简介&#xff1a; 最新全新UI异次元荔枝V4.4自动发卡系统源码 更新日志&#xff1a; 1增加主站货源系统 2支持分站自定义支付接口 3目前插件大部分免费 4UI页面全面更新 5分站可支持对接其他分站产品 6分站客服可自定义 7支持限定优惠 图片&#xff1a; 会员中心截图&…

docker默认存储地址 var/lib/docker 满了,换个存储地址操作流程

1. 查看docker 存储地址 docker info如下 var/lib/docker2、查看内存大小 按需执行 df -h 找超过100M的大文件 find / -type f -size 100M -exec ls -lh {} \; df -Th /var/lib/docker 查找这个文件的容量 df -h 查找所有挂载点 du -hs /home/syy_temp/*1、df -h 2、sud…

Java中锁的全面详解(深刻理解各种锁)

一.Monitor 1. Java对象头 以32位虚拟机位例 对于普通对象,其对象头的存储结构为 总长为64位,也就是8个字节, 存在两个部分 Kclass Word: 其实也就是表示我们这个对象属于什么类型,也就是哪个类的对象.而对于Mark Word.查看一下它的结构存储 64位虚拟机中 而对于数组对象,我…

卡片式组件封装demo

效果视频&#xff1a; 卡片组件 样式还得细调~&#xff0c;时间有限&#xff0c;主要记录一下逻辑。 html结构&#xff1a; 目录 父组件数据处理数据格式 父组件的全部代码 子组件数据处理props参数 样式部分三个圆点点击三圆点在对应位置显示查看弹框点击非内容部分隐藏查看…

从千台到十万台,浪潮信息InManage V7解锁智能运维密码

随着大模型技术的深度渗透&#xff0c;金融行业正经历着前所未有的智能化变革。从“投顾助手”精准导航投资蓝海&#xff0c;到“智能客服”秒速响应客户需求&#xff0c;大模型以其对海量金融数据的深度挖掘与高效利用&#xff0c;正显著提升金融服务的智能化水准&#xff0c;…

Python爬虫(2) --爬取网页页面

文章目录 爬虫URL发送请求UA伪装requests 获取想要的数据打开网页 总结完整代码 爬虫 Python 爬虫是一种自动化工具&#xff0c;用于从互联网上抓取网页数据并提取有用的信息。Python 因其简洁的语法和丰富的库支持&#xff08;如 requests、BeautifulSoup、Scrapy 等&#xf…

Springboot同时支持http和https访问

springboot默认是http的 一、支持https访问 需要生成证书&#xff0c;并配置到项目中。 1、证书 如果公司提供&#xff0c;则直接使用公司提供的证书&#xff1b; 如果公司没有提供&#xff0c;也可自己使用Java自带的命令keytool来生成&#xff1a; &#xff08;1&#x…