java基础案例_Java 基础案例

1.变量及基本数据类型

案例1:变量声明及赋值

//1.变量的声明

int a; //声明一个整型的变量a

int b,c,d; //声明三个整型变量b,c,d

//2.变量的初始化

int a = 250; //声明整型变量a并赋值为250

//声明整型变量b,然后赋值为250

int b;

b = 250;

//3.变量的使用

int a = 5;

int b = b+10; //取出a的值5,加10后赋值给b

System.out.println(b); //输出b的值15

System.out.println("b"); //输出字符串b

a=a+10; //取出a的值5,加上10后再赋值给a

System.out.println(a); //15

int c = 3.14; //编译错误,数据类型不匹配

System.out.println(m); //编译错误,m未声明

int m;

System.out.println(m); //编译错误,m未初始化

//4.变量的命名

int a1,a_5$,$_; //正确命名

int a*b; //编译错误,除了_和$,不能包含*等特殊符号

int 1c; //编译错误,不能以数字开头

int static; //编译错误,不能使用关键字

int a = 6;

System.out.println(A); //编译错误,严格区分大小写

int 年龄; //正确,但不建议

int age; //正确,建议“见名知意

int score,myScore,myJavaScore; //正确,建议"驼峰命名法"

//声明整型变量a并赋值为25.67

int a = 25.67; //编译错误,类型不匹配

案例2:数据类型转换

//1.int整型

int a = 3000000000; //编译错误,30亿超出int范围

System.out.println(5/2); //2 整数直接量默认为int,两个int运算得到的还是int型,小数位无条件舍弃

System.out.println(2/5); //0

System.out.println(5/2.0); //2.5 发生自动类型转换,int转换为double

int c = 2147483647; //int范围最大值

c +=1;

System.out.println(c); //-2147483648 发生溢出,溢出是需要避免的

//2.long长整型

long a = 10000000000; //编译错误,100亿默认为int型,但超范围了

long b = 10000000000L; //100亿L为长整型直接量

long c = 10000000*2*10L;

System.out.println(c); //200亿

long d = 10000000*3*10L;

System.out.println(d); //发生溢出,10亿*3默认是int型,但是30亿已超出int范围

long e = 100000000L*3*10;

System.out.println(e); //300亿,在计算有可能发生溢出的时候建议第一个数加上L

long f = System.currentTimeMillis(); //从1970.1.1零时到现在的毫秒数是long型

//3.double浮点型

double pi = 3.14; //3.14为浮点数直接量,默认为double型

float pi = 3.14F;

double a=6.0,b=4.9;

System.out.println(a); //1.0999999999999996,舍入误差,精确计算不建议double

2.运算符

案例1:运算符的演示

public class Test {

public static void main(String[] args){

int a = 2, b = 7, c=5;

System.out.println(a++); //2

System.out.println(a); //3

System.out.println(++b); //8

/*

* 当变量参与运算时,++x,先自加再运算

* 当变量参与运算时,x++,先运算在自加

*/

c = c++;

/*

* 运算顺序:

* 1.c取出自己内存的值5

* 2.进行自加c变成6

* 3.c++参与运算时的整体值是5

* 4.然后将(c++)整体值赋值给c

* 5.c的值又变成5

*/

System.out.println(c); //5

}

}

案例2:字符串连接

public class Test {

public static void main(String[] args) {

int a =1, b = 2;

String o = "qwer";

String P = a+b+o+a+b;

/*

*任何类型与字符串类型拼接,得到的依然是字符串类型

*计算顺序:

*1.先计算a+b,两个int相加得到int,结果为3

*2.再+o为字符串,得到字符串3qwer

*3再+a+b,得到的依然是字符串,结果为3qwer12

*/

System.out.println(P); //3qwer12

}

}

案例3:三目运算输出三个数的最大值

ublic class Test {

public static void main(String[] args) {

int a = 50, b = 90, c = 20;

int max = (a>b?a:b)>c?(a>b?a:b):c;

System.out.println(max);

}

}

案例4:逻辑运算符演示

public class Test {

public static void main(String[] args) {

int a = 1;

int b = 2;

boolean c = a>1 && ++a>1;

boolean d = a++>1 || b--<2;

boolean e = a<1 || ++b==3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

System.out.println(d);

System.out.println(e);

}

}

/*

运行结果:

2

2

false

false

false

*/

3.分支结构

案例1:判断某一年的某一月是多少天

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 importjava.util.Scanner;2

3 public classTest {4 public static voidmain(String[] args) {5 //用户输入数值

6 Scanner scan = newScanner(System.in);7 System.out.print("请输入查询的年份:");8 int year =scan.nextInt();9 System.out.print("请输入查询的月份:");10 int month =scan.nextInt();11 int days; //用于记录天数

12 switch(month){13 case 2:14 if(year%400==0 || (year%4==0&&year%100!=0)){15 days = 29;16 break;17 }else{18 days = 28;19 break;20 }21 case 4:22 case 6:23 case 9:24 case 11:25 days = 30;26 break;27 default:28 days = 31;29 break;30 }31 System.out.println(year+"年的"+month+"月有"+days+"天");32 }33 }

View Code

4.循环结构

案例1:打印99乘法表

public class Test {

public static void main(String[] args) {

for(int i=1;i<10;i++){

for(int j=1;j<=i;j++){

System.out.print(j+"*"+i+"="+j*i+"\t");

}

System.out.println();

}

}

}

案例2:输入一个int整数,算出这个整数每个数字的和

比如输入321,则输出3+2+1=6

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 importjava.util.Arrays;2 /*

3 1. 3212/10=321...24 2. 321/10=21....15 3. 21/10=2....16 4. 2/10=0....07 规律:a/10最后结果为0的时候停止循环,即数字<108 所以当a每次除10之后的数字>0的时候循环9 */

10 importjava.util.Scanner;11

12 public classTest {13 public static voidmain(String[] args) {14 System.out.print("输入一个整数:");15 Scanner scan = newScanner(System.in);16 String input =scan.nextLine();17 int num = Integer.parseInt(input); //将输入的字符串转化为数字

18 int sum = 0; //用于记录每个数的和

19 char[] arr = input.toCharArray(); //将输入的字符串转换为字符数组

20 while(true){21 sum += num%10;22 if(num<10){23 break;24 }25 num /= 10;26 }27 for(int i=0;i

View Code

案例2:随机加法运算器

要求:系统随机出10道加法题(如3+38=),答对一题计10分,没计算一题给出“正确”或“错误”的提示,中途退出输入-1,最后输出总得分和答对的数量。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 importjava.util.Scanner;2 importjava.util.Random;3

4 public classTest {5 public static voidmain(String[] args) {6 Scanner scan = newScanner(System.in);7 Random ran = newRandom();8 int score = 0; //记分

9 for(int i=0;i<10;i++){10 int x = ran.nextInt(100);11 int y = ran.nextInt(100);12 System.out.println(x+"+"+y+"=?");13 int answer =scan.nextInt();14 if(answer == -1){15 System.out.println("游戏结束");16 break;17 }else if(answer == x+y){18 System.out.println("正确");19 score += 10;20 }else{21 System.out.println("错误");22 }23 }24 System.out.println("总得分是:"+score+"\t 一共答对了:"+score/10+"题");25

26 }27 }

View Code

案例3:猜数字游戏

要求:系统随机生成一个1-1000以内的随机整数,要求用户猜测,猜大提示猜大了,猜小提示猜小了,猜对了提示猜对了并结束游戏,中途退出输入0。

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

//生成随机1-1000以内整数

int num = (int)(Math.random()*1000+1);

System.out.println(num); //作弊,查看随机数是多少

while(true){

System.out.println("猜吧");

int input = scan.nextInt();

if(input == -1){

System.out.println("游戏结束!");

break;

}else if(input >num){

System.out.println("猜大了!");

}else if(input

System.out.println("猜小了!");

}else{

System.out.println("猜对了,恭喜你!");

break;

}

}

}

}

5.数组

案例1:随机生成一个包含10位整数的数组,输出最大值

import java.util.Arrays;

public class Test {

public static void main(String[] args) {

int[] arr = new int[10];

for(int i=0;i<10;i++){

arr[i] = (int)(Math.random()*100);

}

System.out.println(Arrays.toString(arr)); //查看随机生成的数组

//求数组最大值

for(int i=0;i

int temp;

if(arr[i]>arr[i+1]){

temp= arr[i];

arr[i] = arr[i+1];

arr[i+1] = temp;

}

System.out.println("第"+(i+1)+"次排序"+Arrays.toString(arr));

}

System.out.println("最大元素是:"+arr[arr.length-1]);

}

}

/*

运行结果示例:

[52, 73, 78, 33, 28, 63, 53, 35, 19, 32]

第1次排序[52, 73, 78, 33, 28, 63, 53, 35, 19, 32]

第2次排序[52, 73, 78, 33, 28, 63, 53, 35, 19, 32]

第3次排序[52, 73, 33, 78, 28, 63, 53, 35, 19, 32]

第4次排序[52, 73, 33, 28, 78, 63, 53, 35, 19, 32]

第5次排序[52, 73, 33, 28, 63, 78, 53, 35, 19, 32]

第6次排序[52, 73, 33, 28, 63, 53, 78, 35, 19, 32]

第7次排序[52, 73, 33, 28, 63, 53, 35, 78, 19, 32]

第8次排序[52, 73, 33, 28, 63, 53, 35, 19, 78, 32]

第9次排序[52, 73, 33, 28, 63, 53, 35, 19, 32, 78]

最大元素是:78

*/

案例2:冒泡排序

分别输出数组从小到大排序和从大到小排序。

import java.util.Arrays;

public class Test {

public static void main(String[] args) {

int[] arr = new int[10];

for(int i=0;i<10;i++){

arr[i] = (int)(Math.random()*100);

}

System.out.println("随机数组:"+Arrays.toString(arr));

//冒泡排序

System.out.println("=====冒泡排序开始=====");

for(int i=0;i

for(int j=0;j

if(arr[j]>arr[j+1]){ //比较两个相邻的元素,并将较大的元素与后一个元素交换

int t;

t = arr[j];

arr[j] = arr[j+1];

arr[j+1] = t;

}

}

}

System.out.println(Arrays.toString(arr)+"\n=====冒泡排序结束=====");

System.out.println("=====从大到小排序开始=====");

for(int i=0;i

for(int j=0;j

if(arr[j]

int t;

t = arr[j];

arr[j] = arr[j+1];

arr[j+1] = t;

}

}

}

System.out.println(Arrays.toString(arr)+"\n=====从大到小排序结束=====");

}

}

/*

运行结果示例:

随机数组:[85, 25, 37, 32, 99, 83, 13, 81, 56, 99]

=====冒泡排序开始=====

[13, 25, 32, 37, 56, 81, 83, 85, 99, 99]

=====冒泡排序结束=====

=====从大到小排序开始=====

[99, 99, 85, 83, 81, 56, 37, 32, 25, 13]

=====从大到小排序结束=====

*/

案例3:使用Arrays.sort排序

要求:随机生成一个包含10位整数的数组,进行排序,然后将该数组进行扩容加1个该数组里的最大元素,再将该数组的5-8位元素复制给另一个数组。

import java.util.Arrays;

public class Test {

public static void main(String[] args) {

int[] arr = new int[10];

for(int i=0;i<10;i++){

arr[i] = (int)(Math.random()*100);

}

System.out.println("随机数组:"+Arrays.toString(arr));

Arrays.sort(arr); //排序

System.out.println("排序后数组:"+Arrays.toString(arr));

//扩容

arr = Arrays.copyOf(arr, arr.length+1);

arr[arr.length-1] = arr[arr.length-2]; //将最大元素添加到最后

System.out.println("扩容后数组:"+Arrays.toString(arr));

int[] brr = new int[4];

System.arraycopy(arr, 5, brr, 0, 4);

System.out.println("复制的新数组:"+Arrays.toString(brr));

}

}

/*

运行结果示例:

随机数组:[97, 74, 25, 9, 2, 24, 7, 16, 49, 79]

排序后数组:[2, 7, 9, 16, 24, 25, 49, 74, 79, 97]

扩容后数组:[2, 7, 9, 16, 24, 25, 49, 74, 79, 97, 97]

复制的新数组:[25, 49, 74, 79]

*/

6.方法

案例1:重写猜数字游戏

要求:生成随机数字、猜的数字正确与否都用方法来体现

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

int num = generateNum();

check(num);

}

public static int generateNum(){ //生成随机数方法

int num = (int)(Math.random()*1000);

System.out.println(num);

return num;

}

public static void check(int num){ //比较数字方法

Scanner scan = new Scanner(System.in);

while(true){

System.out.println("猜吧!");

int input = scan.nextInt();

if(input ==-1){

System.out.println("欢迎下次来玩,游戏结束!");

break;

}else if(input > num){

System.out.println("猜大了");

}else if(input

System.out.println("猜小了");

}else{

System.out.println("恭喜你,猜对了,游戏结束!");

break;

}

}

}

}

1.1 Java语言发展简史2 1.2 认识Java语言3 1.2.1 Java语言特性3 1.2.2 JavaApplet4 1.2.3 丰富的类库4 1.2.4 Java的竞争对手5 1.2.5 Java在应用领域的优势7 1.3 Java平台的体系结构7 1.3.1 JavaSE标准版8 1.3.2 JavaEE企业版10 1.3.3 JavaME微型版11 1.4 JavaSE环境安装和配置12 1.4.1 什么是JDK12 1.4.2 JDK安装目录和实用命令工具介绍12 1.4.3 设置环境变量13 1.4.4 验证配置的正确性14 1.5 MyEcilpse工具介绍JavaSE环境安装和配置15 1.6 本章练习16 第2章 2.1 什么是程序18 2.2 计算机中的程序18 2.3 Java程序19 2.3.1 Java程序中的类型19 2.3.2 Java程序开发三步曲21 2.3.3 开发Java第一个程序21 2.3.4 Java代码中的注释23 2.3.5 常见错误解析24 2.4 Java类库组织结构和文档27 2.5 Java虚拟机简介28 2.6 Java技术两种核心运行机制29 2.7 上机练习30 第3章 3.1 变量32 3.1.1 什么是变量32 3.1.2 为什么需要变量32 3.1.3 变量的声明和赋值33 3.1.4 变量应用实例33 3.2 数据的分类34 3.2.1 Java中的八种基本数据类型34 3.2.2 普及二进制36 3.2.3 进制间转换37 3.2.4 基本数据类型间转换38 3.2.5 数据类型应用实例38 3.2.6 引用数据类型39 3.3 关键字.标识符.常量39 3.3.1 变量命名规范39 3.3.2 经验之谈-常见错误的分析与处理40 3.3.3 Java标识符命名规则41 3.3.4 关键字42 3.3.5 常量42 3.4 运算符43 3.4.1 算术运算符43 3.4.2 赋值操作符45 3.4.3 关系操作符47 3.4.4 逻辑操作符48 3.4.5 位操作符49 3.4.6 移位运算符49 3.4.7 其他操作符50 3.5 表达式52 3.5.1 表达式简介52 3.5.2 表达式的类型和值52 3.5.3 表达式的运算顺序52 3.5.4 优先级和结合性问题52 3.6 选择结构54 3.6.1 顺序语句54 3.6.2 选择条件语句54 3.6.3 switch结构59 3.6.4 经验之谈-常见错误的分析与处理65 3.6.5 Switch和多重if结构比较66 3.7 循环语句66 3.7.1 While循环67 3.7.2 经验之谈-常见while错误70 3.7.3 do-while循环72 3.7.4 for循环74 3.7.5 经验之谈-for常见错误76 3.7.6 循环语句小结78 3.7.7 break语句79 3.7.8 continue语句82 3.8 JavaDebug技术84 3.9 本章练习85 第4章 4.1 一维数组90 4.1.1 为什么要使用数组90 4.1.2 什么是数组91 4.1.3 如何使用数组92 4.1.4 经验之谈-数组常见错误97 4.2 常用算法98 4.2.1 平均值,最大值,最小值98 4.2.3 数组排序102 4.2.3 数组复制103 4.3 多维数组105 4.3.1 二重循环105 4.3.2 控制流程进阶107 4.3.3 二维数组111 4.4 经典算法113 4.4.1 算法-冒泡排序113 4.4.2 插入排序115 4.5 增强for循环116 4.6 本章练习117 第5章 5.1 面向过程的设计思想120 5.2 面向对象的设计思想120 5.3 抽象121 5.3.1 对象的理解121 5.3.2 Java抽象思想的实现122 5.4 封装124 5.4.1 对象封装的概念理解124 5.4.2 类的理解125 5.4.3 Java类模板创建125 5.4.4 Java中对象的创建和使用127 5.5 属性130 5.5.1 属性的定义130 5.5.2 变量131 5.6 方法132 5.6.1 方法的定义132 5.6.2 构造方法135 5.6.4 方法重载138 5.6.5 自定义方法138 5.6.6 系统提供方法139 5.6.7 方法调用140 5.6.8 方法参数及其传递问题144 5.6.9 理解main方法语法及命令行参数147 5.6.1 0递归算法147 5.7 this关键字148 5.8 JavaBean149 5.9 包150 5.9.1 为什么需要包?150 5.9.2 如何创建包151 5.9.3 编译并生成包:151
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值