移动设备、游戏、通信
JRE(java Runtime Environment) Java运行环境
abstract、boolean、break。。。。。。
Java关键字区分大小写,void是关键字,但Void就不是了
定义:给Java程序中变量、类、方法等命名的符号
package com.jason中的com.jason
public class demo中的demo
规则:
①由数字、字母、下划线组成,不能包含@,%,空格等特殊符号,不能以数字开头
②标识符不能是Java关键字和保留字
③标识符严格区分大小写
三个元素描述变量:数据类型、变量名及变量值
eg:String love="jason";
拼接字符串用"+",字符串必须使用双引号抱起来,单引号报错
规则:
①第一个单词的首字母小写,其后单词首字母大写,驼峰命名法
②不能以数字开头,不能以下划线和美元符之外的其他特殊字符开头,不能使用关键字
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 是一种常用的引用数据类型
System.out.println(love);//love只声明未赋值,报错
⑤变量名不建议使用中文
①int类型不能自动转换成char类型
②目标类型大于源类型,比如,double8字节,int4字节,int数据可以放入double类型中,反之,报错
eg:
double a = 10.2;
int b = (int)a;
PS:强制类型转换可能会造成数据的丢失
语法:
final 常量名 = 值
eg:final String LOVE = "jason";
final double PI = 3.14;
注意:常量名一般使用大写字符
单行注释://
多行注释:/*......*/
文档注释:
/**
*
*
*/
==================================================================================
⑤条件运算符
算数运算符 名称
+ 加
- 减
* 乘
/ 除
% 取余
++ 自增1
-- 自减1
定义:为变量或常量指定数值的符号
赋值运算符 名称
= 赋值
+= 加等于
-= 减等于
*= 乘等于
/= 除等于
%= 模等于
定义:判读两个数据的大小
比较运算符 名称
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于
!= 不等于
PS:①>,<,>=,<=,两边操作数必须是数值类型;②==,!=,两边的操作输可以是数据类型也可以是引用类型
语法:布尔表达式?表达式1:表达式2;
eg:String mark = (score >=60 )?"及格":"不及格";
优先级顺序:从上向下
1 ()
2 !,+(正),-(负),++,--
3 *,/,%
4 +(加),-(减)
5 <,<=,>,>=
6 ==,!=
7 ^
8 &&
9 ||
10 ?:
11 =,+=,-=,*=,/=,%=
==================================================================================
语法:
if(条件){//todo}
语法:
if(条件的布尔表达式){
代码1
}else{
代码2
}
语法:
if(条件1){
代码1
}else if(条件2){//else和if之间有个空格
代码2
}else{
代码3
}
语法:
if(条件1){
if(条件2){
}else{
}
}else{
}
语法:
switch(表达式){
case 值1:
代码1
break;
case 值1:
代码1
break;
default:
默认代码
}
PS:①switch后面的小括号表达式的值必须为整型或者字符串
②case后面的值可以使常量数值,也可以是常量表达式,eg:2+2
③没有遇到break,程序会继续运行下去
语法:
while(判断条件){//todo}
语法:
do{
//todo
}while(判断条件);
for(循环变量初始值;循环条件;循环变量变化){
//todo
}
eg:
for(int i=1;i<=10;i++){
if(i == 10){
break;
}
}
eg:
for(int i=1;i<=10;i++){
if(i == 5){
continue;
}
}
定义:循环中包含循环
==================================================================================
使用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);
}
选中"小甲壳虫",点击运行
点击F6进行下一步操作,查看参数值得变化
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);
}
}
==================================================================================
int[] score = {1,2,3,4};
获取数组的值:score[0],score[1]
①声明数组:
语法:
数据类型[] 数组名;//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};
eg:
int[] scores = {1,2,3,4};
for(int i=0;i
}
PS:数组名.length,获取数组的长度
Arrays中的常用方法:
①排序:
语法:Arrays.sort(数组名);//按升序排序
②将数组转换成字符串
语法:Arrays.toString(数组名)
ps:输出格式如:[game, movie, sports],多个元素之间使用逗号和空格隔开
区别:foreach并非关键字,是for语句的特殊简化版本
语法:
for(元素类型 元素变量:遍历对象){
//todo
}
eg:
String[] hobbies = {"game","basketball","footerball"};
for(String hobby:hobbies){//foreach获取数组元素的下标,可以自定义一个遍历,参与循环
System.out.println(hobby);
}
①声明数组并分配空间
数据类型[][] 数组名 = 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
}
System.out.println();
}
==================================================================================
语法:
访问修饰符 返回值类型 方法名(参数列表){
方法体
}
①访问修饰符:public,protected,private
②返回值类型:void=>无返回值;定义return 语句的值的类型
③方法名:必须使用合法的标识符
④参数列表:每个参数由参数类型和参数名组成,以空格隔开
根据方法是否带参、是否带返回值,可将方法分为四类:
o.无参无返回值方法
t.无参带返回值方法
t.带参无返回值方法
f.带参带返回值方法
方法的使用:
①定义方法:
public void show(){//void:返回值类型,show:方法名
//todo
}
②调用方法
o.创建类的对象
t.调用:对象名.方法名();
方法的使用:
①定义方法:
public int calcSum(){//int:返回一个整型值
int a = 5;
int b = 1;
int sum = a + b;
return sum;//决定方法的返回值类型
}
②调用:参考7.2调用
PS:方法的返回类型为void,则方法中不能使用return返回值;一个方法返回值最多只有一个;返回值的类型必须兼容,即方法返回值类型和return 返回值类型必须一致
①定义方法:
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
eg:
public String show(String name){//带参
return "welcome" + name;//带返回值
}
定义:同一个类,包含两个或者两个以上方法名相同、方法参数的个数、顺序或者类型不同的方法。
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