第二章 数据类型和运算符
-
注释
- 最好写完每个类或方法都要加注释
- 单行注释:使用“//”开头
- 多行注释/行内注释: 以“ /* ”开头以“ */ ”结尾
- 文档注释: 以“ /** ”开头以“ */ ”结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期写项目时,可以生成项目的API)
-
标识符使用规范
- 表示类名的标识符:每个单词的首字母大写,如Man, GoodMan
- 表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写,我们称之为“驼峰原则”,如eat(), eatFood()
变量的分类
类型 | 声明位置 | 从属于 | 生命周期 |
---|---|---|---|
局部变量 | 方法或语句块内部 | 方法/语句块 | 从声明位置开始,直到方法或语句块执行完毕,局部变量消失。使用前必须先声明、初始化 |
成员变量(实例变量) | 类内部,方法外部 | 对象 | 对象创建,成员变量也跟着创建;对象消失,成员变量也跟着消失。如不自行初始化,它会自动初始化 |
静态变量(类变量) | 类内部,static修饰 | 类 | 类被加载,静态变量就有效;类被卸载,静态变量消失。使用static定义,如不自行初始化,它会自动初始化 |
-
常量通常指的是一个固定的值,例如:1、2、3、’a’、’b’、true、false、”helloWorld”等。在Java语言中,主要是利用关键字final来定义一个常量。
常量命名:大写字母和下划线:MAX_VALUE -
Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)
- 基本数据类型:
-
数值型- byte、 short、int、 long、float、 double
-
字符型- char
-
布尔型-boolean
-
- 用数据类型:类(class),接口(interface),数组
- 基本数据类型:
-
浮点数不精确,不要用于比较
-
字符型在内存中占2个字节,在Java中使用单引号来表示字符常量
以后学的String类,其实是字符序列(char sequence)
-
boolean类型有两个常量值,true和false,在内存中占一位(不是一个字节),不可以使用 0 或非 0 的整数替代 true 和 false
DAY4
- 运算符
名称 | 示例 |
---|---|
算术运算符 | (二元运算符):+,-,*,/,%(一元运算符):++,– |
赋值运算符 | = |
拓展运算符 | +=,-=,*=,/= |
关系运算符 | >,<,>=,<=,==,!= |
逻辑运算符 | &&(短路与),||(短路或),!,^,&,\,instanceof |
位运算符 | &,|,^,~,>>,<< |
条件运算符 | ?: |
字符串连接符 | + |
- 短路与和短路或采用短路的方式。从左到右计算,如果只通过运算符左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率
- 逻辑与、逻辑或、逻辑非的优先级一定要熟悉!(逻辑非>逻辑与>逻辑或)。如:a||b&&c的运算结果是:a||(b&&c),而不是(a||b)&&c
- 操作比较大的数时,要留意是否溢出,尤其是整数操作时。当有可能溢出时,可以提前将变量转为long类型,即在变量前加(long)或在变量后加L。
使用Scanner获取键盘输入
package pro02;
import java.util.Scanner;
public class TestScanner {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入名字:");
String name = scanner.nextLine();
System.out.println("请输入年龄:");
int age = scanner.nextInt();
System.out.println("################");
System.out.println(name);
System.out.println("来到地球"+age*356+"天");
}
}
作业
一、1.CD 2.C 3.A 4.AB 5.AB
三、
package pro02;
import java.util.Scanner;
public class test1 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入圆的半径:");
double r = scanner.nextDouble();
double c = 2*3.14*r;
double s = 3.14*r*r;
System.out.println("该圆的半径为:R="+r);
System.out.println("该圆的周长为:C=2*3.14*"+r+"="+c);
System.out.println("该圆的面积为:S=3.14*"+r+"*"+r+"="+s);
}
}
package pro02;
public class test2 {
public static void main(String[] args) {
int base = 10000;
System.out.println("本金:"+base);
long year1huo = Math.round(base + base*0.0035);
long year1ding = Math.round(base + base*0.015);
long year2huo = Math.round(base + base*0.0035*2);
long year2ding = Math.round(base + base*0.021*2);
System.out.println("活期1年本金总计:"+year1huo);
System.out.println("定期1年本金总计:"+year1ding);
System.out.println("活期2年本金总计:"+year2huo);
System.out.println("定期2年本金总计:"+year2ding);
}
}
package pro02;
import java.util.Scanner;
public class test3 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个位正整数:");
int a = scanner.nextInt();
int ge = a%10;
int shi = ((a-ge)/10)%10;
int bai = ((a-shi*10-ge)/100)%10;
int qian = ((a-bai*100-shi*10-ge)/1000)%10;
ge = ge<5?ge+5:ge-5;
shi = shi<5?shi+5:shi-5;
bai = bai<5?bai+5:bai-5;
qian = qian<5?qian+5:qian-5;
int answer=ge*1000+shi*100+bai*10+qian;
System.out.println("加密后的数字为:"+answer);
}
}
- 参考代码
import java.util.Scanner;
public class Test2_3 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入一个正整数:");
int number=scanner.nextInt();
int a,b,c,d;
//将数字每一位取下来
a=number/1000;
b=(number-a*1000)/100;
c=(number-a*1000-b*100)/10;
d=number%10;
//将每位数字都加五取余
a=(a+5)%10;
b=(b+5)%10;
c=(c+5)%10;
d=(d+5)%10;
//交换位置并输出最后结果
System.out.println("加密后的数字为:"+(d*1000+c*100+b*10+a));
}
}