Java课程一
主要内容:
1.java平台应用
2.核心概念:JVM,JDK,JRE
3.搭建Java开发环境
4.使用工具开发Java程序
5.经验分享
一、Java SE
核心基础:面向对象、API、JVM....
二、Java EE
三、Java ME
移动设备、游戏、通信
四、JVM(java virtual Machine) Java 虚拟机
(鱼) (刀) (杀好的鱼) (进一步加工,锅)
JRE(java Runtime Environment) Java运行环境
五、Java开发环境搭建(Windows)
第一步:安装JDK下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
PS:点击可执行程序,下一步,下一步即可。
第二步:配置环境变量
JAVA_HOME 配置JDK安装路径
eg:C:\Program Files\Java\jdk1.8.0_171
PATH 配置JDK命令文件的位置
eg:C:\Program Files\Java\jdk1.8.0_171\bin
CLASSPATH 配置类库文件的位置
eg:C:\Program Files\Java\jdk1.8.0_171\lib
六、使用记事本编写Java
myProgram.java----------------------------->myProgram.clas------------------------> 显示(源文件) (编译器,使用javac命令) (解释器,使用java命令)
流程:
①新建HelloWorld.java
②cmd,javac HelloWorld.java---->生成了HelloWorld.class
③java HelloWorld 注意: 直接接类名,不要加上class
七、使用Eclipse开发java程序:集成开发环境类工具(IDE)
下载:https://www.eclipse.org/downloads/
①创建Java项目 file->new->javaProject
②创建程序包 选中项目的src目录-->new->package
③编写Java源程序 选中包->new->class
④运行Java程序 空白处右击->run as ->java application,包含了编译的过程
八、MyEclipse的使用简介:
九、程序的移植:
File->Import->Gerneral->Existing Project into WorkSpace->Browse->选中项目
十、总结
多练、多问、自己动手,调试错误、复习与总结2-1 关键字
abstract、boolean、break。。。。。。
Java关键字区分大小写,void是关键字,但Void就不是了
2-2 标识符
定义:给Java程序中变量、类、方法等命名的符号
package com.jason中的com.jason
public class demo中的demo
规则:
①由数字、字母、下划线组成,不能包含@,%,空格等特殊符号,不能以数字开头
②标识符不能是Java关键字和保留字
③标识符严格区分大小写
2-4 变量
三个元素描述变量:数据类型、变量名及变量值
eg:String love="jason";
拼接字符串用"+",字符串必须使用双引号抱起来,单引号报错
2-5 变量命名
规则:
①第一个单词的首字母小写,其后单词首字母大写,驼峰命名法
②不能以数字开头,不能以下划线和美元符之外的其他特殊字符开头,不能使用关键字
2-6 Java的数据类型
Java语言是一种强类型语言。
数据类型:
①基本数据类型:
数值型:整数类型(byte,short,int,long);浮点类型(float,double);
字符型:char
布尔型:boolean
②引用数据类型:
类:class
接口:interface
数组
PS:java中,基本数据类型变量存的是数据本身,而引用类型变量存的是数据的空间地址
常用基本数据类型:
数据类型 说明 字节 应用
int 整型 4 存储整数、年龄、个数
double 双精度浮点型 8 存储小数、商品价格、平均分
float 单精度浮点型 4 存储小数、身高
char 字符型 2 存储单个字符、性别
boolean 布尔型 1 表示真或假
注意:为float变量赋值时在数值后添加字母,eg:float height = 120.2f;为char变量赋值时使用单引号(')引起来
String 是一种常用的引用数据类型
2-7 Java中变量的使用规则
①Java的变量必须先声明再使用
②声明变量的时候可以初始化。eg:String love="jason";或者String love;love="jason";
③变量中每次只能赋一个值,但可以修改多次
④main方法中定义的变量必须赋值之后才能输出
eg:String love;
System.out.println(love);//love只声明未赋值,报错
⑤变量名不建议使用中文
2-9 Java中的自动类型转化
①int类型不能自动转换成char类型
②目标类型大于源类型,比如,double8字节,int4字节,int数据可以放入double类型中,反之,报错
2-10 Java中的强制类型转换
语法:
(数据类型)数值
eg:
double a = 10.2;
int b = (int)a;
PS:强制类型转换可能会造成数据的丢失
2-11 Java常量的应用
语法:
final 常量名 = 值
eg:final String LOVE = "jason";
final double PI = 3.14;
注意:常量名一般使用大写字符
2-12注释
单行注释://
多行注释:/*......*/
文档注释:
/**
*
*
*/
E:\javadoc -d doc demo.java
javadoc标识:写入注释文档中,自动返回
@author 标明开发该类模块的作者
@version 标明该类模块的版本
@see 参考转向,也就是相关主题
@param 对方法中某参数的说明
@return 对方法返回值的说明
@exception 对方法可能抛出的异常进行说明
==================================================================================
3-1 运算符
①算数运算符
②赋值运算符
③比较运算符
④逻辑运算符
⑤条件运算符
3-2 Java中的算数运算符
算数运算符 名称
+ 加
- 减
* 乘
/ 除
% 取余
++ 自增1
-- 自减1
3-3 Java中的赋值运算符
定义:为变量或常量指定数值的符号
赋值运算符 名称
= 赋值
+= 加等于
-= 减等于
*= 乘等于
/= 除等于
%= 模等于
3.4比较运算符
定义:判读两个数据的大小
比较运算符 名称
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于
!= 不等于
PS:①>,<,>=,<=,两边操作数必须是数值类型;②==,!=,两边的操作输可以是数据类型也可以是引用类型
3-5 Java中的逻辑运算符
逻辑运算符 名称&& 与
|| 或
! 非
^ 异或 有且仅有一个为TRUE,才返回True
PS:注意短路现象
3-7 Java中的条件运算符(三元运算符)
语法:布尔表达式?表达式1:表达式2;
eg:String mark = (score >=60 )?"及格":"不及格";
3-8 Java中的运算符的优先级
优先级顺序:从上向下
1 ()
2 !,+(正),-(负),++,--
3 *,/,%
4 +(加),-(减)
5 <,<=,>,>=
6 ==,!=
7 ^
8 &&
9 ||
10 ?:
11 =,+=,-=,*=,/=,%=
==================================================================================
4-1 Java条件语句之if
语法:
if(条件){//todo}
4-2 Java条件语句if...else
语法:
if(条件的布尔表达式){
代码1
}else{
代码2
}
4-3 Java条件语句之多重if
语法:
if(条件1){
代码1
}else if(条件2){//else和if之间有个空格
代码2
}else{
代码3
}
4-4 Java条件语句之嵌套if
语法:
if(条件1){
if(条件2){
}else{
}
}else{
}
4-6 Java条件语句之switch
语法:
switch(表达式){
case 值1:
代码1
break;
case 值1:
代码1
break;
default:
默认代码
}
PS:①switch后面的小括号表达式的值必须为整型或者字符串
②case后面的值可以使常量数值,也可以是常量表达式,eg:2+2
③没有遇到break,程序会继续运行下去
4-7 Java循环语句之while
语法:
while(判断条件){//todo}
4-8 Java循环语句之do...while
语法:
do{
//todo
}while(判断条件);
4-9 Java循环语句之for
for(循环变量初始值;循环条件;循环变量变化){
//todo
}
4-11 Java循环跳转语句之break
eg:
for(int i=1;i<=10;i++){
if(i == 10){
break;
}
}
4-12 Java循环跳转语句之continue
eg:
for(int i=1;i<=10;i++){
if(i == 5){
continue;
}
}
4-14 Java循环语句之多重循环
定义:循环中包含循环
==================================================================================
5-3 编程优化:
使用Scanner工具类来获取用户输入的数据信息
Scanner类位于java.util包中,使用时需要引入此包
步骤:
①导入java.util.Scanner;//import java.util.Scanner;
②创建Scanner对象;//Scanner input = new Scanner(System.in);
③接受并保存用户输入的值
eg:println输出后会换行,print不会
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入考生的成绩:");
int score = input.nextInt();
int count = 0;
System.out.println("加分前:" + score);
while(score < 60) {
score++;
count++;
}
System.out.println("最终成绩:" + score);
System.out.println("加分次数:" + count);
}
5-4 使用Eclipse断点调试
选中"小甲壳虫",点击运行
点击F6进行下一步操作,查看参数值得变化
5-5 进阶练习
eg:
/**
* 功能:实现接受三个班级的各四名学员的成绩信息,然后计算每个班级的平均分
* 知识点:二重循环,外层循环控制班级的数量,内层循环控制每个班级学员的数量
* @param args
*/
public static void main(String[] args) {
int classNum = 3;//班级数量
int stuNum = 4;//学生数量
double sum = 0;//总分
double avg = 0;//平均分
for(int i=1;i<=classNum;i++) {
sum = 0;
System.out.println("*****请输入第" + i + "个班级成绩*****");
for(int j=1;j<=stuNum;j++) {
System.out.println("*****请输入第" + j + "个学员成绩*****");
Scanner input = new Scanner(System.in);
sum +=input.nextInt();
}
avg = sum /4;
System.out.println("第" + i + "个班级的平均分为:" + avg);
}
}
==================================================================================
6-1 定义数组
int[] score = {1,2,3,4};
获取数组的值:score[0],score[1]
6-3 如何使用Java中的数组
①声明数组:
语法:
数据类型[] 数组名;//eg:int[] score;
或者:
数据类型 数组名[];//eg:int score[];
②分配空间:指定数组中存放数组的元素个数
eg:scores = new int[5];height = new double[5];names = new String[5];
合并①和②:
eg:int[] scores = new int[5];
③赋值:
scores[0] = 100;scores[1] = 40;
④处理数组数据:
System.out.println(scores[0]);
⑤其他方式创建数组
int[] scores = {1,2,3,4};等价于
int[] scores = new int[]{1,2,3,4};
6-5 循环操作Java中的数组
eg:
int[] scores = {1,2,3,4};
for(int i=0;i<scores.legth;i++){
System.out.println(score[i]);
}
PS:数组名.length,获取数组的长度
6-7 使用java中Array类操作数组(java.unit.Arrays)
Arrays中的常用方法:
①排序:
语法:Arrays.sort(数组名);//按升序排序
②将数组转换成字符串
语法:Arrays.toString(数组名)
ps:输出格式如:[game, movie, sports],多个元素之间使用逗号和空格隔开
6-8 使用foreach操作数组
区别:foreach并非关键字,是for语句的特殊简化版本
语法:
for(元素类型 元素变量:遍历对象){
//todo
}
eg:
String[] hobbies = {"game","basketball","footerball"};
for(String hobby:hobbies){//foreach获取数组元素的下标,可以自定义一个遍历,参与循环
System.out.println(hobby);
}
6-9 Java中的二维数据
①声明数组并分配空间
数据类型[][] 数组名 = new 数据类型[行的个数][列的个数];
或者
数据类型[][] 数组名;
数组名 = new 数据类型[行的个数][列的个数];
eg:int[][] name= new int[2][3];
②赋值
数组名[行的索引][列的索引] = 值;//num[1][2] = 3;
同时声明数组的同时亦可赋值:数据类型[][] 数组名 = {{},{},{}};
③处理数据
eg:
//定义数组
int[][] num = {{1,2,3},{4,5,6}};
for(int i=0;i<num.length;i++){
for(int j=0;j<num[i].length;j++){
System.out.print(num[i][j]);
}
System.out.println();
}
==================================================================================
7 方法
7-1 定义Java中的方法
语法:
访问修饰符 返回值类型 方法名(参数列表){
方法体
}
①访问修饰符:public,protected,private
②返回值类型:void=>无返回值;定义return 语句的值的类型
③方法名:必须使用合法的标识符
④参数列表:每个参数由参数类型和参数名组成,以空格隔开
根据方法是否带参、是否带返回值,可将方法分为四类:
o.无参无返回值方法
t.无参带返回值方法
t.带参无返回值方法
f.带参带返回值方法
7-2 Java中无参无返回值方法的使用
方法的使用:
①定义方法:
public void show(){//void:返回值类型,show:方法名
//todo
}
②调用方法
o.创建类的对象
t.调用:对象名.方法名();
7-3 Java中无参带返回值方法的使用
方法的使用:
①定义方法:
public int calcSum(){//int:返回一个整型值
int a = 5;
int b = 1;
int sum = a + b;
return sum;//决定方法的返回值类型
}
②调用:参考7.2调用
PS:方法的返回类型为void,则方法中不能使用return返回值;一个方法返回值最多只有一个;返回值的类型必须兼容,即方法返回值类型和return 返回值类型必须一致
7-5 Java中带参数无返回值的方法使用
①定义方法:
public void show(String name){
System.out.println("欢迎" + name);
}
②调用方法:
对象名.方法名(实参1,实参2....)
HelloWorld hello = new HelloWorld();
hello.show("慕课网");
PS:定义方法时的参数称为形参,调用方法时的参数称为实参
PS:
O、用带参数方法时,必须保证实参的数量、类型、顺序与形参一致
T、调用方法时、实参不需要指定数据类型
T、方法的参数可以是基本类型,如int,double等,也可以是引用数据类型,如String,数组
eg:
public void print(int[] scores){
System.out.println(Arrays.toString(scores););
}
HelloWorld hello = new HelloWorld();
int[] scores = {1,2,3};
hello.print(scores);
F、当方法的参数有多个时,多个参数以逗号分隔开
eg:public int print(int num1,int num2){}
注意:double avg = sum/2.0;//double类型2需要写成2.0
7-6 Java中带参数带返回值方法的使用
eg:
public String show(String name){//带参
return "welcome" + name;//带返回值
}
7-8 Java中方法的重载
定义:同一个类,包含两个或者两个以上方法名相同、方法参数的个数、顺序或者类型不同的方法。
eg:
public void show(){}
public void show(String name){}
public void show(String name,int age){}
public void show(int age,String name){}
区分调用的方法:根据参数的个数和类型来判断
判断重载的依据:
①同一个类
②方法名相同
③方法参数的个数、顺序或类型不同
④与方法的修饰符或返回值没有关系
视频链接:https://www.imooc.com/learn/85