当前位置: 首页 > news >正文

Java基础入门day04

day04

包可以用来区分相同的类名

将相同的类放在不同包下,可以进行存储

一个目录下没有办法存在两个同名的文件

包最终在文件系统中与文件目录结构是一一对应的

在不同包下可以存放相同类名的文件

包后期还可以实现项目中模块的精确划分,controller,service,dao

语法结构:
在类的非注释代码的第一行,使用
package xxx.xxx.xxx;
那么当前类就被防止在对应的包下
如下代码中,CountSocre类被放置在com.saas.class03包下
在文件系统中,在com目录下,有一级目录叫saas,而saas目录下又有一级目录class03,在class03目录下存放了CountScore.java文件
package com.saas.class03;
​
public class CountScore {
}
​

运算符

算术运算符

关系运算符

在现实世界中,可能会存在两个变量的相互关系问题:

乌龟比大象长寿

商品楼比别墅高

别墅比商品楼贵

最终进行比较之后的结果是一个逻辑值真或者假

运算符号:

> >= < <= == !=
运算符运算完成后的结果是boolean值,要么是true,要么是false,后期可以使用关系运算符在进行判断
注意,Java中的两个值判断是否相等,使用的是两个等号,一个等号是用来做赋值的,只有两个等号用来做判断的
不等于的写法是!=
package com.saas.op;
​
public class TestOp02 {
​public static void main(String[] args) {double height1 = 2.0;double height2 = 1.8;
​System.out.println(height1 > height2);System.out.println(height1 < height2);System.out.println(height1 == height2);System.out.println(height1 >= height2);System.out.println(height1 <= height2);System.out.println(height1 != height2);
​}
}

逻辑运算符

两个逻辑值进行运算,最终的运算结果继续是逻辑值

&&:代表与运算,只有两个结果为true的值经过运算之后得到的结果才为true

||:代表或运算,只要两个值中有一个或一个以上的值为true,则得到的结果为true

!: 非运算,取反操作,遇真变假,遇假变真

短语与非短路对比

package com.saas.op;
​
public class TestOp04 {
​public static void main(String[] args) {int i = 10;
​
//        System.out.println(i > 0 || i / 0 == 0);  //  短路或,第一个表达式的值已经为true了,则后面的表达式不做运算,即使后面的表达式运算过程会出错,但是由于它不被执行,所以错误不会出现
//        System.out.println(i > 0 | i / 0 == 0);   //  普通或,第一个表达式的值为true,后面的表达式还要继续执行,在之后后面表达式的过程中出错,所以整个结果出错
//        System.out.println(i < 0 && i / 0 == 0);  //  短路与,第一个表达式的值为false,后面的表达式不执行,所以整个结果为falseSystem.out.println(i < 0 & i / 0 == 0);     //  普通与,第一个表达式的值为false,后面的表达式要继续执行,所以整个结果出错}
}
​

三元运算符

语法结构:

将判断后的结果赋值给变量

逻辑类型的变量或者表达式 ? 表达式1 : 表达式2;
package com.saas.op;
​
public class TestOp06 {
​public static void main(String[] args) {boolean isRainy = false;
​String result = isRainy ? "睡觉" : "逛街";
​System.out.println(result);}
}
​
package com.saas.op;
​
public class TestOp05 {
​public static void main(String[] args) {int week = 7;
​String rest = week >5 ? "休息" : "上课";System.out.println(rest);}
}
​

赋值运算符

=,将右值赋值给左值,右值可能是常量,可能是变量,可能是表达式,但是必须是确定的有最终结果的值。

+=, -=, *=, /=, &= 复合赋值运算符,特点是可以自动进行类型的处理,无需程序员手动处理

package com.saas.op;
​
public class TestOp08 {
​public static void main(String[] args) {int i = 10;
​i = i + 9;
//        i = i + 9.9;
​System.out.println(i);
​
//        i += 100;           //  +=等同于i = i + 100;i += 9.9;System.out.println(i);
​System.out.println("==============");
​int j = 10;
​j += 9.9;System.out.println(j);}
}

位运算符

移位运算符

思考题

byte a = 128;
short b = 65;
float f = 9.9;
char c1 = '65';
char c2 = 65;
String j = "   123  ";

思考:

package com.saas.op;public class TestAutoConvert {public static void main(String[] args) {double d = 9;System.out.println(d);long l = 9999;System.out.println(l);}
}

自动类型转换

小类型转成大类型数据,可以实现自动转换,无需任何额外操作,

但是原本小数据占用的空间后面将占据大类型的空间

double d = 9; 原本9是int类型,只需要占用四个字节的空间即可,

而现在将int类型的值赋值给double类型的d,那么d将占用八个字节的空间。

强制类型转换:

大类型转换为小类型,则必须要进行强制类型转换,其语法格式:

小数据类型 小数据类型变量 = (小数据类型)大数据类型的值;
int i = (int)9.9;

强制类型转换必须要进行代码的处理,否则编译报错,但是强制类型转换会面临数据的精度丢失问题。

package com.saas.op;public class TestForceConvert {public static void main(String[] args) {int i = (int)9.9;System.out.println(i);byte s = (byte)0b1111111111;System.out.println(s);}
}

控制台输入

程序在运行过程中,可以有用户自主的输入一些内容,再让程序做相应的执行

语法结构:

Scanner类的使用,分为三个步骤:

  1. 导包:import java.util.Scanner;

  2. 创建Scanner对象

  3. 使用Scanner对象完成用户输入的接收

注意:java.lang包下的所有资源可以不必导入而直接使用

只要不在java.lang包或者同包下,需要使用其他类型的资源时,就必须要导入

package com.saas.op;import java.util.Scanner;public class TestScanner01 {public static void main(String[] args) {int i = 10;System.out.println(i);System.out.println("===============");Scanner scanner = new Scanner(System.in);int money = scanner.nextInt();System.out.println(money);}
}
package com.saas.op;import java.util.Scanner;public class TestScanner02 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入姓名:");String name = input.next();System.out.println("请输入年龄:");int age = input.nextInt();System.out.println("请输入性别:");boolean sex = input.nextBoolean();System.out.println("请输入身高:");double height = input.nextDouble();System.out.println("姓名:\t" + name + "\n年龄:\t" + age + "\n性别:\t" + (sex? "男" : "女") + "\n身高:\t" + height);}
}
http://www.lryc.cn/news/318483.html

相关文章:

  • 中值定理j
  • 第2篇【Docker项目实战】使用Docker部署Raneto知识库平台(转载)
  • 【Javascript】 Promise 对象(二)
  • 细说C++反向迭代器:原理与用法
  • SpringBoot(依赖管理和自动配置)
  • cad怎么转换成黑白的pdf图纸?分享3个常用的软件!
  • maven本地仓库依赖上传到远程仓库
  • ISIS多区域实验简述
  • go语言基础笔记
  • kettle 9.4和Pentoho 9.4下载及安装方法简介
  • 社交革命的引领者:探索Facebook如何改变我们的生活方式
  • 常用的推荐算法
  • 使用Python进行图片格式转化/分辨率转化
  • 植物神经功能紊乱患者每天从5片黛力新减少至2片,只因找对了治疗方法!
  • SpringSecurity 快速入门
  • MySQL--执行一条 select 语句,期间发生了什么?
  • DeepL:word文档导出后不能编辑
  • PCL 约束Delaunay三角网(版本二)
  • 位运算#蓝桥杯
  • Python yield from
  • Atcoder TUPC 2023(東北大学プログラミングコンテスト 2023)E. And DNA(矩阵快速幂+拆位讨论)
  • Matlab/simulin光伏发电直流串联故障电弧模型仿真
  • 4款实用性前端动画特效分享(附在线演示)
  • LeetCode -- 76. 最小覆盖子串
  • 【进阶五】Python实现SDVRP(需求拆分)常见求解算法——蚁群算法(ACO)
  • php.exe运行时,提示缺少VCRUNTIME140.dll
  • Android垃圾回收机制
  • 深度学习专家学习计划
  • 关于Ubuntu虚拟机突然上不了网的问题
  • [mysql必备面试题]-InnoDB和MyISAM引擎的区别