目录
Java基本语法
一、Java代码的基本格式
Java中的程序都必须放在一个类中,类需要使用class关键字定义,在class前面可以有一些修饰符,格式如下:
修饰符 class 类名{
程序代码
}
在编写Java代码时,需要特别注意下列几个关键点:
- 在Java中的程序代码可分为结构定义语句和功能执行语句,其中,结构定义语句用于声明一个类或方法,功能执行语句用来实现具体的功能。每条功能执行语句的最后都必须用分号(;)结束。
- Java语言严格区分大小写。
- 虽然Java没有严格要求用什么样的格式来编排程序代码,但是,出于可读性的考虑,应该让自己编写的程序代码整齐美观、层次清晰。
- Java程序中一句连续的字符串不能分开在两行中书写。
- 如果为了便于阅读,想将一个太长的字符串分在两行书写,可以将这个字符串分成两个字符串,然后用加号(+)将这两个字符串连起来,在加号(+)处断行。
二、Java中的注释
三、Java中的标识符
四、Java中的关键字
常量变量数据类型
一、Java中的常量
常量就是再程序中固定不变的值,是不能改变的数据,通常也称为“final变量”。常量在整个程序中只能被赋值一次。
在Java中,常量包括整型常量、浮点常量、布尔常量、字符串常量等。
二、Java中的变量
long类型的变量赋值时,所赋值的后面要加上一个字母“L”或小写“l”,说明赋值为long类型。如果赋值的值为超出int型的取值范围,则可以省略字母“L”或小写“l”。
变量的类型转换
自动类型转换一定不会丢失数据,强制类型转换有可能丢失数据。
运算符
符号在前,先运算后使用;符号在后,先使用后运算。
逻辑运算符包括&(&&)(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符的操作元必须是boolean型数据。
&(&&)(逻辑与):两者都为真,结果才为真
||(逻辑或):只要有一者为真,结果才为真
商城库存案例,代码如下:
/*
*商城库存清单案例
*变量的形式对商品的数据保存
* 品牌,尺寸的大小,价格
* 三个商品苹果,thinkpad,华硕
* 计算出总的库存数,和商品的总金额
*/
public class StoreList {
public static void main(String[]args) {
//苹果笔记本电脑
String macBrand="MacBookAir";
double macSize=13.3;
double macPrice=6988.88;
String macConfig="i5处理器4G内存128GB固体硬盘";
int macCount=5;
//联想Thinkpad笔记本电脑
String thinkBrand="ThinkpadT450";
double thinkSize=14.0;
double thinkPrice=5999.99;
String thinkConfig= "i5处理器4GB内存400G硬盘";
int thinkCount=10;
//华硕ASUS笔记本电脑
String ASUSBrand="AUSS-FL5800";
double ASUSSize=15.6;
double ASUSPrice=4999.50;
String ASUSConfig="i7处理器4GB内存128G固态硬盘";
int ASUSCount=18;
//列表的顶部
System.out.println("---------------------------商城库存---------------------------");
System.out.println("品牌型号 尺寸 价格 配置 库存数");
//列表的中部
System.out.println(macBrand+" "+macSize+" "+macPrice+" "+macConfig+" "+macCount);
System.out.println(thinkBrand+" "+thinkSize+" "+thinkPrice+" "+thinkConfig+" "+thinkCount);
System.out.println(ASUSBrand+" "+ASUSSize+" "+ASUSPrice+" "+ASUSConfig+" "+ASUSCount);
//统计总库存数,总库存金额
int totalCount=macCount+thinkCount+ASUSCount;
double totalMoney=( macPrice* macCount)+( thinkPrice* thinkCount)+( ASUSPrice* ASUSCount);
//列表底部
System.out.println("------------------------------------------------------------");
System.out.println("总库存数:"+totalCount);
System.out.println("库存数商品总金额:"+totalMoney);
}
}
运行结果:
流程控制
一、条件语句
4、switch多分支语句
二、 循环语句
流程图:
流程图:
三、循环控制
猜字游戏案例,代码如下:
import java.util.Random;
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
//1、通过RANDOM类中的nextInt(n)方法,生成一个0-9之间的随机数
int randomNumber =new Random().nextInt(10);
System.out.println("随机数已生成!");
//2、输入猜的数字
System.out.println("----请输入您猜的数字:-----");
Scanner sc=new Scanner(System.in);
int enterNumber=sc.nextInt();
//3、通过while循环,进行猜数字对错判断
while(enterNumber!=randomNumber) {
//猜错了,根据结果,给出提示,接着猜数字,游戏继续
if(enterNumber>randomNumber) {
//如果猜大了,打印sorry,您猜大了!继续下一次循环
System.out.println("sorry,您猜大了!");
}
else {
//如果猜小了,打印sorry,您猜小了!继续下一次循环
System.out.println("打印sorry,您猜小了!");
}
//输入猜的数字
System.out.println("-----请输入您的数字:-------");
enterNumber=sc.nextInt();
}
System.out.print("恭喜您,答对了!");
}
}
运行结果:
方法
什么是方法
- 假设一个游戏程序,程序在运行过程中,要不断的发射炮弹。发射炮弹的动作需要编写100行的代码,在每次实现发射炮弹的地方,都需要重复的编写这100行代码,这样程序会变得很臃肿,可读性也非常差。
- 为了解决代码重复编写的问题,可以将发射炮弹的代码提取出来放在一个{}中,并为这段代码起个名字,然后每次发射炮弹的地方通过这个名字来调用代码就可以了。
- 上述过程中所提取出来的代码可以被看作是程序中的一个方法,程序在需要发射炮弹时调用该方法即可。
- 方法可以看成完成一个功能的,具有独立性的代码的一个小的片段。
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
//下面的循环是使用*打印宽为5,高为3的矩形
for(int i = 0; i<3 ; i++) {
for(int j = 0;j < 5; j++) {
System.out.print("*");
}
System.out.print("\n");
}
//下面的循环是使用*打印宽为4,高为2的矩形
for(int i = 0; i < 2; i++){
for(int j = 0; j < 4; j++) {
System.out.print("*");
}
System.out.print("\n");
}
//下面的循环是使用*打印宽为10,高为6的矩形
for(int i = 0;i < 6; i++){
for(int j = 0;j < 10; j++) {
System.out.print("*");
}
System.out.print("\n");
}
}
}
运行结果:
方法的重载
重载的特点: Java允许在一个程序中定义多个名称相同的方法,但是参数的类型或个数必须不同(个数不一样,类型不一样,顺序不一样也是重载),这就是方法的重载。(方法名相同,但是这个参数列表不一样)
重载和前面的内容没有关系,返回值没关系修饰符也没关系。只和方法名和参数列表有关系。
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
//下面针对求和的方法调用
int sum1 = add01(1,2);
int sum2 = add02(1,2,3);
double sum3 = add03(1,2);
//下面的代码是打印求和的结果
System.out.println("sum1="+sum1);
System.out.println("sum2="+sum2);
System.out.println("sum3="+sum3);
}
//下面的方法实现两个小数相加
private static double add03(double i, double j) {
// TODO Auto-generated method stub
return i+j;
}
//下面方法实现了三个整数相加
private static int add02(int i, int j, int k) {
// TODO Auto-generated method stub
return i+j+k;
}
//下面的方法实现两个数整数相加
private static int add01(int i, int j) {
// TODO Auto-generated method stub
return i+j;
}
}
运行结果:
数组
每个数组的索引都有一个范围,即0~length-1。在访问数据的元素时,索引不能超出这个范围,否则程序会报错。
一、数组的基本操作
遍历二维数据需要使用双层for循环,通过数组的length属性可获得数组的长度。
多维数组
/*
* 二维数组的使用
*/
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] [] arr = new int[3] [];//定义一个长度为3的二维数组
arr[0] = new int[] {11,12};//为数组的元素赋值
arr[1] = new int[] {21,22,23};
arr[2] = new int[] {31,32,33,34};
int sum = 0;//定义变量记录总销售额
for(int i =0;i<arr.length;i++) {
int gropuSum = 0;//定义变量记录小组的销售额
for(int j = 0;j<arr[i].length;j++) {
gropuSum = gropuSum+arr[i][j];
}
sum = sum + gropuSum;
System.out.println("第"+(i+1)+"小组销售额为:"+gropuSum+"万元");
}
System.out.println("总销售额为:"+sum+"万元");
}
}
运行结果:
随机点名案例,代码如下:
import java.util.Random;
import java.util.Scanner;
/*
* 随机点名器
*/
public class CallName {
/*
* 1、存储全班同学的姓名,创建一个存储多个同学姓名的容器(数组)
* 键盘录入多个同学姓名存储到容器中
*/
public static void addStudentName(String[] students) {
//键盘录入多个同学姓名到存储容器中(数组)
Scanner sc=new Scanner(System.in);
for(int i=0;i<students.length;i++) {
System.out.println("存储第"+(i+1)+"个姓名:");
students[i]=sc.next();
}
}
/*
*2、总览全班同学姓名
*/
public static void printStudentName(String[] students) {
//遍历数组,得到每个同学姓名
for(int i=0;i<students.length;i++) {
String name=students[i];
System.out.println("第"+(i+1)+"个学生姓名:"+name);
}
}
/*
* 3、随机点其中一人
*/
public static String randomStudentName(String[] students) {
//根据数组长度,获取随机数
int index=new Random().nextInt(students.length);
//通过随机所以从数组中获取姓名
String name=students[index];
//返回随机点到的姓名
return name;
}
public static void main(String[] args) {
System.out.println("-----随机点名器-----");
//创建一个可以存储多个同学姓名的容器(数组)
String[] students=new String[8];
//1、存储全班同学姓名
addStudentName(students);
//2、总览全班同学姓名
printStudentName(students);
//3、随机点出其中一人
String randomName=randomStudentName(students);
System.out.println("被点到名字的同学是:"+randomName);
}
}
运行结果: