分类: 单行注释:// 多行注释:/**/ 文档注释:/***/
1.什么是关键字? 被java赋予特殊含义的单词 2.关键字的两个特点? 全部都是小写字母 在编译器中会变色
常量的分类: 字符串常量:由双引号包裹起来的 整数常量:整数 小数常量:小数 字符常量:由单引号包裹起来的,只能存放一个字符 布尔常量:只有两个结果true,false 空常量:null,不能直接打印
1.什么是变量? 在内存中的一块空间,空间中存储着可以变化的值. 2.变量的格式? 数据类型 变量名=数据值;
分类: 整数型:byte(-128-127),short,int(-21亿-21亿),long 浮点型:float,double(双精度,默认) 字符型:char(0-65535) 布尔型:boolean
步骤: 1.导包 import java.util.Scanner; 2.创建对象 Scanner sc=new Scanner(System.in); 3.接收数据 int num=sc.nextInt();
类型: 隐式转换:把小的给大的,可以直接给 强制转换:把大的给小的,需要强转 数据类型 变量名=(数据类型)数据值;
分类: + - * /:整数相除,得到的结果只能是整数,如果想要小数,必须有小数参与运算 %:两个数相除,得到的余数
特性: 和任何类型的值相加,都会把对方变成字符串类型
特点: ++在前:先自增,再使用 ++在后:先使用,再自增
分类: = *=: a*=b ---> a=(a的类型)a*b; /= += -= %=
分类: &&:如果左边为false,右边不执行 ||:如果左边为true,右边不执行
格式: 关系表达式?表达式1:表达式2; true?1:2;
格式1: if(boolean类型的值){ 语句体; } 格式2: if(boolean类型表达式){ 语句体1; }else{ 语句体2; } 格式3: if(boolean类型表达式1){ 语句体1; }else if(boolean类型表达式2){ 语句体2; }...else{ 语句体; }
格式: switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; default: 语句体; break; } 注意事项: 1.不写break会发生case穿透 2.当所有case都匹配失败,会走default语句 3.case后面的值要和小括号里的值对应 4.小括号里的表达式类型byte,short,int,char,枚举,字符串 5.case后面的值只能是一个常量,不能是变量 6.多个case的值不能相同
组成: for(初始化语句;条件判断语句;条件控制语句){ 循环体语句; } 举例: for(int i=1;i<=100;i++){ System.out.println("HelloWorld"); }
//9*9乘法表 public static void main(String[] args) { for (int i = 1; i <=9 ; i++) { for (int j =1 ; j <=i; j++) { System.out.print(i+"*"+j+"="+(i*j)+"\t"); } System.out.println(); } }
组成: 初始化语句; while(条件判断语句){ 循环体; 条件判断语句; }
//用户登录,可以不限次数,直到登录成功为止 //int username=123; //int password=123; public static void main(String[] args) { //用户登录,可以不限次数,直到登录成功为止 int username = 123; int password = 123; Scanner sc = new Scanner(System.in); lo: while (true) { System.out.println("请输入用户名:"); int user = sc.nextInt(); System.out.println("请输入密码"); int pass = sc.nextInt(); if (username==user&&pass==password){ System.out.println("登录成功"); break ; } System.out.println("用户名或密码有误"); } }
格式: while(true){ } for(;;){ }
break:结束当前循环 continue:跳过本次循环,进入下次循环
步骤: 1.导包 import java.util.Random; 2.创建对象 Random r=new Random(); 3.产生随机数 int num=r.nextInt(范围值); 0--范围值-1 举例: 20-50 r.nextInt(31)+20;
本质上就是一个容器,容器中可以存储多个相同数据类型的数据
格式: 数据类型 [] 数组名=new 数据类型[数组长度]; 举例: double [] arr=new double[5];
格式: 数据类型[] 数组名={值1,值2,值3........}; 举例: int [] arr={1,2,3,4,5......};
赛值: 数组名[索引值]=数据值; 拿值: 数据类型 变量名=数组名[索引值];
for(int i=0;i<数组名.length;i++){ sout(数组名[i]); }
//int [] arr={11,55,99,33,66,77,10,50}; //求最大值和最小值 public static void main(String[] args) { int[] a = {11, 55, 99, 33, 66, 77, 10, 50}; int max = a[0]; int min = a[0]; for (int i = 0; i < a.length; i++) { if (min > a[i]) { min = a[i]; } if(max < a[i]) { max = a[i]; } } System.out.println("最大值" + max + "最小值" + min); }
格式: //带参数带返回值 public static 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2){ return 值; }
特点: 多个方法在同一个类里,有相同的方法名 参数的个数不同 参数的类型不同 当有多个不同类型的参数时,顺序不同 方法的参数名无关 方法的返回值无关
特点: 方法传递基本数据类型的时候传递的是值,当方法更改了调用者传递的结果,调用者本身的值不会改变 例如我们在传答案的时候,对方把答案更改了,不会影响我们自身的试卷
特点: 方法在传递引用数据类型的时候,传递的是地址值,当方法更改了我们传递的值,调用者本身的结果也会更改 例如我们在把试卷借给同学抄,对方把我们的试卷给更改了,那么还回来的时候,我们的答案依然是更改过的
//int [] arr={11,55,99,33,66,77,10,50}; //定义方法求最大值和最小值然后返回 public static void main(String[] args) { int[] a = {11, 55, 99, 33, 66, 77, 10, 50}; //int []brr=new int[2]; int[] brr=getMaxAndMin(a); for (int i = 0; i < brr.length; i++) { System.out.println(brr[i]); } } public static int[] getMaxAndMin(int []a){ int max=a[0]; int min=a[0]; int []b=new int[2]; for (int i = 0; i < a.length; i++) { if (a[i] <min) { min=a[i]; } if(a[i]>max){ max=a[i]; } } b[0]=min; b[1]=max; return b; }
面向过程所有事情都是自己做,POP 面向对象就是指挥别人去干活,OOP
类:对一类具有相同属性和行为的事物的抽象 对象:具体的事物 类是对象的描述 对象是类的实体
隐藏实现的细节,仅对外暴露访问的接口
将我们程序中重要的代码进行私有化,目的是为了让其他程序无法直接访问,只能通过其他我们提供的安全方法去访问
目的是为了解决成员变量和局部变量重名的问题,this指的是对象的调用者,谁调用他,this就是谁
1.定义类 2.创建属性并私有化 3.提供属性对应的getter和setter方法,alt+insert快捷键 4.提供无参和带参构造方法,alt+insert快捷键 5.有其他行为正常书写