Java自用作业
2023-09-12 21:46:03 5 举报
AI智能生成
a啊啊啊
作者其他创作
大纲/内容
循环结构
枚举
枚举本质上是一个类,枚举类
枚举类中可以有多个枚举项(枚举类的对象)
注解
概念
注解是一个标记,给类、方法、变量添加一些额外的信息
内置注解
@Override
标记一个方法是重复父类方法
@Deprecated
标记一个方法已过时
@SuppressWarnings
压制警告
元注解
@Retention
RetentionPolicy.RUNTIME
注解在运行时有效
RetentionPolicy.SOURCE
注解在源代码时期有效
RetentionPolicy.CLASS
注解在字节码时期有效
@Target
ElementTYpe.TYPE
注解可以使用在类上
ElementType.METHOD
注解可以在使用在方法上
ElementType.FIELD
注解可以使用在变量上
反射
反射可以获取一个类的各个组成部分(成员变量、成员方法、构造方法)
获取字节码子主题
Class.forName("包名.类名")子主题
对象名.getClass()
类名.class
获取构造方法
getConstructor()
获取公有的-----------------
getDeclaredConstructor()
获取所有的构造方法
获取成员变量
getField()
获取公有的成员变量
getDeclaredField()
获取所有的成员变量
获取成员方法
getMethod()
获取公有的成员方法
getDeclaredMethod()
获取所有的成员变量
流程控制语句
分支结构
if语句
1. if是该语句中的关键字,后续小括号不可省略;
2. 条件表达式返回的结果为布尔型,当返回为真值时才能执行if功能代码;
3. 功能代码块为多行时,应将其放在花括号"{}"中间,当功能代码块为单行时,则不需要花括号;
4. 不论if语句块是单行还是多行,建议都用花括号"{}"括起来;
5. if()子句后不能跟分号";"
2. 条件表达式返回的结果为布尔型,当返回为真值时才能执行if功能代码;
3. 功能代码块为多行时,应将其放在花括号"{}"中间,当功能代码块为单行时,则不需要花括号;
4. 不论if语句块是单行还是多行,建议都用花括号"{}"括起来;
5. if()子句后不能跟分号";"
if语句(二选一)
在程序的执行过程中,if语句只执行条件表达式返回值为真时的操作。但如果需要返回值为真或假时都执行各自相应操作,就可以使用if-else语句来完成
在程序的执行过程中,if语句只执行条件表达式返回值为真时的操作。但如果需要返回值为真或假时都执行各自相应操作,就可以使用if-else语句来完成
当条件为多个时,Java提供了专门的多分支if- else if -else语句以实现条件的多重选择
f-else if-else语句的代码执行过程为:
1.当条件表达式1返回值为真时,则执行功能代码块1;
2.当条件表达式1返回值为假时且条件表达式2返回值为真时,则执行功能代码块2;
3.如果条件表达式1、条件表达式2都返回假且条件表达式3返回值为真,则执行功能代码块3,
4.依次类推,如果所有条件都不成立,则执行else语句的功能代码。
1.当条件表达式1返回值为真时,则执行功能代码块1;
2.当条件表达式1返回值为假时且条件表达式2返回值为真时,则执行功能代码块2;
3.如果条件表达式1、条件表达式2都返回假且条件表达式3返回值为真,则执行功能代码块3,
4.依次类推,如果所有条件都不成立,则执行else语句的功能代码。
switch语句
switch(表达式){
case 取值1:
语句块1;
[break;]
case 取值2:
语句块2;
[break;]
......
case 取值n:
语句块n;
[break;]
default:
语句块n+1;
}
case 取值1:
语句块1;
[break;]
case 取值2:
语句块2;
[break;]
......
case 取值n:
语句块n;
[break;]
default:
语句块n+1;
}
1. 表达式的类型只能为byte、short、char、int,在JDK7中增加了对String类型的支持;
2. case语句是标号语句,只确定程序的入口;
3. 值1、值2......值n只能为常数或常量,不能为变量,而且值不能重复;
4. 功能代码部分可以写任意多句;
5. break关键字结束switch语句,为可选项;
6. default语句功能类似于if-else语句中的else
2. case语句是标号语句,只确定程序的入口;
3. 值1、值2......值n只能为常数或常量,不能为变量,而且值不能重复;
4. 功能代码部分可以写任意多句;
5. break关键字结束switch语句,为可选项;
6. default语句功能类似于if-else语句中的else
循环结构
while语句
while(循环条件){
循环体;
}
循环体;
}
1. 循环条件的类型为布尔类型,指循环成立的条件;
2. 花括号{}不是必须的,当循环体中只有一条语句时,可以省略;
3. 循环体是需要重复执行的代码。
2. 花括号{}不是必须的,当循环体中只有一条语句时,可以省略;
3. 循环体是需要重复执行的代码。
do-while语句
do{
循环体;
}while(循环条件);
循环体;
}while(循环条件);
1. 循环体是重复执行的代码部分,循环条件要求是布尔类型,值为true时执行循环体,否则循环结束,最后整个语句以分号结束;
2. do-while语句是 "先循环再判断"的流程控制结构。
2. do-while语句是 "先循环再判断"的流程控制结构。
for语句
for(表达式1;表达式2;表达式3){
循环体;
}
循环体;
}
1. 表达式1用于初始化,一般书写变量初始化的代码,例如循环变量的声明、赋值等,它在for语句中执行且只执行一次。表达式1可以为空;
2. 表达式2是循环条件,要求必须为布尔类型,如果该条件为空,则默认为true,即条件成立;
3. 表达式3为迭代语句,是指循环变量变化的语句,一般书写i++、i--这样的结构。该语句可以为空。
4. 循环体指循环重复执行的功能代码。
5. 花括号{}不是必须的,当循环体部分只有一条语句时可以省略。
2. 表达式2是循环条件,要求必须为布尔类型,如果该条件为空,则默认为true,即条件成立;
3. 表达式3为迭代语句,是指循环变量变化的语句,一般书写i++、i--这样的结构。该语句可以为空。
4. 循环体指循环重复执行的功能代码。
5. 花括号{}不是必须的,当循环体部分只有一条语句时可以省略。
嵌套循环
程序中常用的一种方法,如果在一个循环语句A中又包含另一个循环语句B,那么语句A就是嵌套循环语句,这种结构称为循环嵌套。内嵌的循环B中还可以嵌套循环C,这就是多层循环。语句A也称为主循环或者外循环,B称为内循环。
死循环
循环语句中如果循环条件永远为真,那么这样的循环就是死循环。死循环的破坏力极强,导致软件的其它功能无法执行,而且只能通过杀死线程、结束进程等方法被动解除,所以一般情况下都要在代码中避免死循环的出现。
由于死循环识别算法实现困难,所以,当前任何编译系统都不做死循环检查,因此在开发过程中需要程序员认真对待,做到绝对避免。
由于死循环识别算法实现困难,所以,当前任何编译系统都不做死循环检查,因此在开发过程中需要程序员认真对待,做到绝对避免。
控制语句的应用
水仙花问题
public class Narcissus {
public static void main(String args[]) {
for (int i = 100; i < 1000; i++) { // 循环所有三位数
int a = i % 10; // 拆分出个位数字
int b = (i / 10) % 10; // 拆分出十位数字
int c = i / 100; // 拆分出百位数字
// 判断立方和是否等于自身
if (a * a * a + b * b * b + c * c * c == i) {
System.out.println(i);
}
}
}
}
public static void main(String args[]) {
for (int i = 100; i < 1000; i++) { // 循环所有三位数
int a = i % 10; // 拆分出个位数字
int b = (i / 10) % 10; // 拆分出十位数字
int c = i / 100; // 拆分出百位数字
// 判断立方和是否等于自身
if (a * a * a + b * b * b + c * c * c == i) {
System.out.println(i);
}
}
}
}
求两个自然数的最大公约数
求8和2的最大公约数 public class CommonDivisor1 {
public static void main(String[] args) {
int m = 8;
int n = 12;
int result = 1;
for (int i = 1; i <= m; i++) {
if ((m % i == 0) && (n % i == 0)) {
result = i;
}
}
System.out.println(result);
}
}
public static void main(String[] args) {
int m = 8;
int n = 12;
int result = 1;
for (int i = 1; i <= m; i++) {
if ((m % i == 0) && (n % i == 0)) {
result = i;
}
}
System.out.println(result);
}
}
百元百鸡问题
打印图形
public class StarPrint {
public static void main(String[] args) {
for (int row = 1; row <= 5; row++) { // 外层循环执行换行
// 打印空格的数量为5减去所在行数
for (int c1 = 0; c1 < 5 - row; c1++) {
System.out.print(' ');
}
// 打印星号的数量为所在行数的2倍减1
for (int c2 = 0; c2 < 2 * row - 1; c2++) {
System.out.print('*');
}
// 换行
System.out.println();
}
}
}
public static void main(String[] args) {
for (int row = 1; row <= 5; row++) { // 外层循环执行换行
// 打印空格的数量为5减去所在行数
for (int c1 = 0; c1 < 5 - row; c1++) {
System.out.print(' ');
}
// 打印星号的数量为所在行数的2倍减1
for (int c2 = 0; c2 < 2 * row - 1; c2++) {
System.out.print('*');
}
// 换行
System.out.println();
}
}
}
质数判断
public class Exponent {
public static void main(String[] args) {
int n = 29;
boolean b = true; //布尔类型,表示是否为质数,初始值为真
for (int i = 2; i < n; i++) {
//若能够整除则不是质数
if (n % i == 0) {
b = false;
break; //跳出循环
}
}
//输出结果,判断是否为质数
if (b) {
System.out.println(n + "是质数");
} else {
System.out.println(n + "不是质数");
}
}
}
public static void main(String[] args) {
int n = 29;
boolean b = true; //布尔类型,表示是否为质数,初始值为真
for (int i = 2; i < n; i++) {
//若能够整除则不是质数
if (n % i == 0) {
b = false;
break; //跳出循环
}
}
//输出结果,判断是否为质数
if (b) {
System.out.println(n + "是质数");
} else {
System.out.println(n + "不是质数");
}
}
}
0 条评论
下一页