第一章:初识Java
1、Java是一种计算机语言。
2、Java是一种程序语言。
1、机器语言(低级):只有计算机能认识
2、汇编语言:面向硬件的
3、高级语言:我们人认识的
1、程序的定义:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。
2、用途:学习怎么向电子产品发送命令,让电子产品工作。
Java的初期开发早在1991年就开始了,Java是前Sun公司(现甲骨文股份有限公司)于1995年推出的高级编程语言,在当今时代,Java技术已经无处不在。
James Gosling被誉为“Java语言之父”。
是java开发依赖的环境。
开发企业级网络应用程序。
是java为移动设备提供的开发。
运行java的可执行文件,
用于java的编译,运行。
放置java的运行环境。
存放java的jar包, java运行的基本的环境。
1、此电脑——右键——属性——高级系统设置——点击—— 弹出系统属性窗口
3、第一个是JAVA_HOME
变量,点击下面的【新建】,【变量名】为JAVA_HOME
;【变量值】为JDK路径,如 图,把JDK的路径复制到对话框中,本人的是D:\tool\java\jdk1.8.0_152,点击【确定】 即可。变量值也可以选择浏览目录进行填写。
4、第二个是PATH变量,因为系统已经预先配置有了这个变量,我们只需要修改即可,点击【编辑】,进入修改界面;点击【新建】,在最下方的位置把JDK目录下的bin文件夹的路径复制进去,本人的是D:tool\java\jdk1.8.0_152\bin(我用的是这个配置方式:%JAVA_HOME%\bin),再点击【确定】即可。(鼠标双击也可以新建编辑)
4、第三个是CLASSPATH
变量,和JAVA_HOME
变量的配置一样,我们点击【新建】,【变量名】为CLASSPATH
;【变量值】为JDK文件夹下的lib目录。
D:tool\java\jdk1.8.0_152\lib(我用的是这个:%JAVA_HOME%\lib
),如图所示。然后点击所有对话框中的【确定】。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4TQ3zYtp-1570546913897)(C:\Users\Lenovo\Pictures\Saved Pictures\Image 6.png)]
1、 源代码的后缀是“.java”。
2、程序的框架(砌房子的给地基印上私有财产)
public class 类名{
public static void main(String []args){
//程序的入口:有且只能有一个。
}
}
注意:1) 类不可以随便命名,即public修饰的class后面跟的名字[类名]必须和文件一模一样。
main方法中的void不可少。
Java对英文字母大小写敏感。
“;”是必须的。在Java中,一个完整的语句都要以“;”结束。
“ “” ”是必须的。输出的字符串必须用引号引起来,而且必须是英文的引号。
2)类名首字母大写。
3)类名第一个字符不能是数字。
4) public class是固定的。
5)main():固定;
一个英文单词只要后面有括号,我们就叫它方法;
例如:main(String[] args);
main(String args[]);
main(String[] aa);
[]位置可以调整;
args可以改个名字。
在cmd命令窗口输入:javac 文件名 .java,会生成一个文件:.class文件(字节码文件)。
在cmd命令窗口输入:java 文件名。
1、包资源管理器
2、导航器
注:如果无法看到包资源管理器和导航器这两个视图,可以选择“Window-Show View-Package Expiorer"和"Window-Show View-Navigator"选项,以打开这两个视图。
能注释多行
/*
*/
一般用来解释class有什么用,用来解释main有什么用。
/**
*
*/
注:每一个class上面都需要有文档注释。
System.out.println();输出内容后换行
System.out.print();输出内容后不换行
括号里面的内容:
如果是数字可以直接输出为数字;
如果是字符:就需要用双引号引起来;
如果没有用双引号引起来,会把这个字符当成一个名字;
1、以“\”开头
就是将字符本身的含义转换一下
2、\n:换行
\t:空格,一个制表位
“”:只是双引号;(原本是字符串)
1、{}成双成对
2、位置:
当一段代码属于另外一段代码里面的时候,开始位置敲tab键。
1)可以增加代码的可读性。
2)使得软件开发和维护更加方便。
3)不遵守规范的代码并不是错误的代码,但是好的代码应遵守相应的规范,从开始就注意按照规范编写代码,这是成为一名优秀程序员的基本条件。
变量是储存数据的一个基本单元。(不同的变量相互独立)
1.不同的数据类型
八大基本数据类型:double int long short boolean float bytle char
2.Java常用数据类型
int:整型(占四字节)
double:双精度浮点型(占八字节)
char:字符型
String:字符串型(引用数据类型)
blean:true or false
1)根据数据的类型在内存中分配一个合适的“房间”,并给它命名,“即变量名”。
2)将数据存储到这个“房间”中。
3)从房间中取出数据使用,可以通过变量名来获得。
1、数据类型 变量名; 例如:double score;
变量名 = 值; score = 0;
2、数据类型 变量名 = 值;
例如:double score = 0;
注:变量都必须声明和赋值了才能使用。
概念:使用存储的变量,我们称之为’调用变量’。
例如:System.out.println(score);//从控制台输出变量score存储的值。
1、变量必须以字母、下划线“-”或“$”符号开头。
2、变量可以包或数字,但不能以数字开头。
3、除了“-”或“$”符号以外,变量名不能包含任何特殊符号。
4、不能使用和java语言的关键字(如int、class、public 等)。
1、变量未赋值先使用
2、使用非法的变量名
3、变量不能重名
1、赋值运算符(=)
2、算术运算符( + - * / )
3、逻辑运算符 (&&、||、!)
4、关系运算符:>、<、==、>=、<=、!= ;
(数据类型)表达式 例如:
double d = 34.5634;
int b =(int) d;
括号中的类型就是要强制转换的类型。转换后b = 34;
if选择结构是根据条件判断之后再处理的一种语法结构。
if(条件){
代码块 //条件成立后要执行的代码,可以是一条语句,也可以是一组语句。
}
if (条件) {
//代码块1
}else {
//代码块2
}
暂略
是解决需要判断的条件是连续的区间时具有很大优势的结构。
if (条件1) {
//代码块1
} else if (条件二) {
//代码块2
} else {
//代码块3
}
注:else块最多有一个或者没有,else块必须放在else if块之后。
暂略
就是在if选择结构里面嵌入if选择结构。
if (条件) {
if(条件2) {
//代码块
}else {
//代码块2
}
} else {
//代码块3
}
注:1、只有满足外层if选择结构的条件时,才会判断内层if的条件
2、else总是与它前面最近的那个缺少else的if配对。
3、if结构书写规范如下:
1)把每个if或else包含的代码用大括号括起来。(使if结构更清晰)
2)相匹配的一对 if 和 else 应该左对齐。
3)内层的if结构相对于外层的if结构要有一定的缩进。
略
可以方便的解决等值判断问题的结构。
switch (表达式){
case 常量 1:
//代码块1;
break;
case 常量 2:
//代码块 2:
break;
.........
default:
//代码块n;
break;
注意:1、switch选择结构只能用于等值得判断,而且只能是整型和字符型的等值判断,每一个case后面 的常量值都不同。
2、记住每个case块后面加上一个“break;”,用来跳出switch选择结构。
略
是一个先判断后执行的结构。
while (循环条件) {
//循环操作
}
略
1)没有为循环变量赋初值。
2) 缺少{}。
满足暂停程序,观察变量和逐条执行语句等功能的工具和方法总称为程序调试。
(1)分析错误,设置断点。
(2)启动调试,单步执行。
是先执行后判断的循环。
do {
//循环操作
} while(循环条件) ;
执行顺序:1)声明并初始化循环变量。
2)执行一遍循环操作。
3)判断循环条件,如果循环条件满足,则循环继续执行,否则退出循环。do–while循环的特 点是先执行,再判断。
根据do–while循环的执行过程可以看出,循环操作至少执行一遍。
暂略
1) 分析循环条件和循环操作。
2)套用 do–while 语法写出代码。
3)检查循环能否退出。
是反复执行一段代码,直到满足一定的条件为止的循环结构。
1、初始部分:设置循环的初始状态,如设置记录循环次数的变量i为0;
2、循环体:重复执行的代码;
3、迭代部分:下一次循环开始前要执行的部分;
4、循环条件:判断是否继续循环的条件。
for (表达式1【赋值语句】;表达式2【条件语句】;表达式3【赋值语句,常用++或--运算】){
//循环体
}
执行顺序:1)执行初始部分。
2)进行循环条件判断。
3)根据循环条件判断结果。结果为True,执行循环体,反之,退出循环( 即【4】 【5】都不执行)。
4)执行迭代部分,改变循环变量值(i++)。
5)依次重复循环步骤(2)–步骤(4),直到退出for循环结构。
注:要检查循环是否能够退出。
用于终止某个循环,使程序跳到循环体外的下一条语句。在循环中位于break后的语句将不再执行,循环 也停止执行。
注:break语句不仅可以用在for循环中,也可以用在while和do -while循环结构中。break语句通常和if条 件语句一起使用。
在某个循环中,不执行完所有的循环体,跳出本次循环,开始执行下一个循环。
选择游戏
import java.util.Scanner;
public class Domon1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("欢迎进入青鸟游戏迷你平台");
System.out.println("请选择您喜爱的游戏");
System.out.println("***********************************");
System.out.println("\t1.斗地主");
System.out.println("\t2.斗龙");
System.out.println("\t3.泡泡龙");
System.out.println("\t4.连连看");
System.out.println("***********************************");
System.out.println("请选择,输入数字:");
int a =in.nextInt();
switch(a) {
case 1:
case 2:
case 3:
case 4:
System.out.println("您已进入房间");
break;
}
}
}
数组就是一个变量,用于将相同数据类型的数据存储在内存中。
用于区分不同的数组。
数组标识符后,要向数组中存放数据,这些数据就称为数组元素。
为了得到数组的元素,计算机对它们进行编号存取,
存储在数组中的数据元素应该是同一数据类型。
数据类型 [ ] 数组名;
或者
数据类型 数据名[ ];
数组名 = new 数据类型 [数组长度];
数组名[下标值];
数据类型 [] 数组名= {值1,值2,值3,…,值n};
数组创建后,其长度不可改变,如果越界访问(即数组下标超过0至数组长度-1的范围),程序会报错。
使用数组长度方式:
数组名.length;
1)数组下标从0开始。
2)数组访问越界。
Arrays sort(数据名);
例:int indext = list.length; //保存新增成绩插入位置
一个循环体内又包含另一个完整的循环结构。
用二重循环计算每个班级平均分
import java.util.Scanner;
public class Sl1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] score = new int[4];
int classNum=3;
double sum = 0.0;
double [] average =new double [classNum];
Scanner in = new Scanner(System.in);
for(int i=0;i
跳出本次循环,进入下一次循环。
统计成绩在84分以上的学员共有多少名
import java.util.Scanner;
public class Sl3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] score = new int [4];
int classnum = 3;
double sum = 0.0;
double [] average = new double[classnum];
int count = 0;
//循环输入学员成绩
Scanner in = new Scanner(System.in);
for(int i = 0;i < classnum;i++) {
sum = 0.0;
System.out.println("请输入第"+(i+1)+"个班级的成绩");
for(int j = 0;j < score.length;j++) {
score[j] = in.nextInt();
sum = sum+score[j];
if(score[j] < 85) {
continue;
}
count++;
}
average[i] =sum/score.length;
System.out.println("第"+(i+1)+"个班级参加学员的平均分是:"+average[i]+"\n");
}
System.out.println("成绩85分以上的学员人数有"+count+"人");
}
}
跳出本层循环,即提前结束本层循环,执行循环下面的语句。
假设有五家衣服专卖店,每件限购3件衣服。用户可选择离开也可以选择买衣服,打印出总共购买了几件衣 服。
import java.util.*;
public class Sl4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int count = 0;
String choice;
Scanner in = new Scanner(System.in);
for(int i = 0;i<5;i++) {
System.out.println("欢迎光临第"+(i+1)+"家专卖店");
for(int j =0;j<3;j++) {
System.out.println("要离开吗?(y/n)?");
choice = in.nextLine();
if("y".equals(choice)) {
break;
}
System.out.println("买了一件衣服");
count++;
}
System.out.println("离店结账");
}
System.out.println("总共买了"+count+"件衣服");
choice = in.nextLine();
}
}
完成注册–登录–幸运抽奖三部分任务。
阶段一:实现菜单的输出显示
阶段二:实现循环执行功能
阶段三:实现注册功能
阶段四:实现登录功能
阶段五:实现幸运抽奖功能
万物皆对象, 用来描述客观事物的一个实体,由一组属性和 方法构成。
用来描述对象静态属性的一个数据项(该数据项的值为属 性值)
用来描述对象动态特征(行为)的一个动作序列。
把一个事物包装起来,并尽可能隐藏内部细节。
对对象进行分类管理,类是对象的类型,类定义了对象将会 拥有的特征(属性)和行为(方法)。
类是对象的抽象,对象是类的具体(实例)。
public class <类名>{
//定义属性部分
属性1 的类型 属性 1;
属性2 的类型 属性2;
.........
//定义方法部分
方法一:
方法二:
........
方法n;
}
访问修饰符 返回值类型 方法名() {
//方法体
}
类名 对象名;
= new 类名();
对象名.属性 //引用对象的属性
对象名.方法(); //引用对象的方法
1)与人类的思维习惯一致;
2)信息隐藏,提高了程序的可维护性和安全性;
3)提高了程序的可重用性;
类是由一组具有相同属性和共同行为的实体抽象而来的。
1)方法的名称
2)方法的返回值类型
3)方法的主体
public 返回值类型方法名(){
//方法的主体
return 表达式;
}
1、 如果在不同的类中(没用static修饰):
对象名.方法名();
2、 如果在同一个类中,主方法没用static修饰:
方法名();
对象名.方法名();
3、如果在同一个类中,主方法用static修饰,其他方法有用static修饰:
对象名.方法名();
4、如果在同一个类中,主方法用static修饰,其他方法没用static修饰:
对象名.方法名();
方法名();
类名.方法名();
5、 如果用static修饰的方法,调用规则建议:
类名.方法名();
1) 如果方法有返回值,在调用方法的前面定义一个变量接收返回值。
返回值类型 变量名 = 对象名.方法名();
2)如果方法没有返回值:
调用的时候就不能在前面定义变量
1、数据类型 属性名;
2、默认值:
String:null
int:0
double:0.0
动态的行为。
1、
访问修饰符 返回值类型 方法名(参数){
}
2、访问修饰符:
public:公开
protected:受保护
private:私有的
3、返回值类型:
void:
可以没有return
如果有renturn,return后面不能有值;
数据类型
方法体里面必须有return 值;
值的数据类型 = 返回值的数据类型
4、方法名:命名规则等同变量。
5、参数:就是定义变量,可以N,可以没有
无参方法:参数个数为0
有参方法:
类名要求:
1、首字母大写
2、要与文件名一致;
3、命名组成与变量一致【组成:字母,数字,_,$,不能用数字开 头,不能用关键字】
1、结束方法
2、返回值
全局变量(属性)
局部变量:定义在方法里面
法名(){
//方法的主体
return 表达式;
}
## 方法调用
### 调用规则
1、 如果在不同的类中(没用static修饰):
对象名.方法名();
2、 如果在同一个类中,主方法没用static修饰:
方法名();
对象名.方法名();
3、如果在同一个类中,主方法用static修饰,其他方法有用static修饰:
对象名.方法名();
4、如果在同一个类中,主方法用static修饰,其他方法没用static修饰:
对象名.方法名();
方法名();
类名.方法名();
5、 如果用static修饰的方法,调用规则建议:
类名.方法名();
1) 如果方法有返回值,在调用方法的前面定义一个变量接收返回值。
返回值类型 变量名 = 对象名.方法名();
2)如果方法没有返回值:
调用的时候就不能在前面定义变量
### 注意
#### 属性
1、数据类型 属性名;
2、默认值:
String:null
int:0
double:0.0
#### 方法
动态的行为。
1、
```java
访问修饰符 返回值类型 方法名(参数){
}
2、访问修饰符:
public:公开
protected:受保护
private:私有的
3、返回值类型:
void:
可以没有return
如果有renturn,return后面不能有值;
数据类型
方法体里面必须有return 值;
值的数据类型 = 返回值的数据类型
4、方法名:命名规则等同变量。
5、参数:就是定义变量,可以N,可以没有
无参方法:参数个数为0
有参方法:
类名要求:
1、首字母大写
2、要与文件名一致;
3、命名组成与变量一致【组成:字母,数字,_,$,不能用数字开 头,不能用关键字】
1、结束方法
2、返回值
全局变量(属性)
局部变量:定义在方法里面