第一天
一.HelloWorld
熟练编写HelloWorld
二.环境
JRE是什么?作用是什么? 我们程序必须要有jvm才能运行
JDK的是什么?作用是什么? jre里面就有核心类库 也有jvm
JVM是什么?作用是什么? jdk包含一些开发工具 也包含jre
JRE、JDK、JVM的区别是什么? jdk> jre >jvm
三.关键字
java里面被赋予特殊含义的单词。
特点:关键字全部小写
四.标识符
标识符:起名字 / 除了关键字的单词 全部都是标识符;
标识符可以自己定义:
规则:
组成 数字 字母 _ $
注意:
不能以数字开头
不能是关键字
约定俗成的习惯:
类名,接口名: 首字母大写,如果包含多个单词的,后续的单词每个首字母都大写
HelloWorld Student StudentTest
方法名,变量名:首字母小写,如果包含多个单词的,后续的单词每个首字母都大写
get getSum price applePrice
常量名: 所有字母都大写,如果包含多个单词的,单词之间用_隔开
JAVA_HOME
五.常量和变量
常量:运行过程中 其值不会发生改变的量就是常量
变量:运行过程中 值可以发生改变的量
定义格式: 数据类型 变量名 = 初始化值
注意事项:
1:局部变量使用之前必须先赋值;
2:变量作用范围 只在当前{}
3: 在同一个范围内 不能重复定义相同名字的变量
六.数据类型
基本类型 引用类型
整型
byte 1 -128 ~ 127
short 2
int 4
long 8
整型 默认类型是int
浮点型
float 4
double 8
浮点型默认类型是double
字符型
char 2
布尔型
boolean 1
yte < short < int < long <float < double
七.注释
单行注释 //
多行注释 /* */
文档注释 /** */
第二天
一.eclipse
1.安装:位数相同
2.先建项目 包 类
3.快捷键:
main + alt + /
syso + alt + /
ctrl + /
ctrl + shift + /
ctrl + shift +\
ctrl + shift + f
二.运算符
1.算数运算符
表达式:用符号连接的式子(不能自成语句),除了复制运算符;
+ - * /
注意:/ 整数相除 得整数 要想结果得到小数 必须有小数参加运算符
% : 取余数
字符和字符串参加运算符:
+:字符串连接符 (紧挨着字符串的那两个+号是字符串连接符)
字符和int值相加:
字符会变成值 再去加。 为什么字符会变成值呢?
涉及到了编码表。 因为计算机只能存储数,怎么存储 字符呢? 由编码表对应去存。
++ --
int a = 10;
// 当 ++ 放在变量的后面 ,a自己+1 ,a++整体不便
//int b = a++;
// 当++ 放在变量的前面, a自己+1, ++a整体+1
int b = ++a;
System.out.println(a); //11
System.out.println(b); //
2.赋值运算符
int a = 10;
+= -= *=
byte a =10;
short s = 11;
s+=a; // s= (short)(s+a)
3.关系运算符
== != > <
有关系运算符计算出来的结果 都是boolean类型的
System.out.pritln(a=b); 打印的b的值
4.逻辑运算符:
& : 和 真和假 有假则假
| : 或 真或假 有真则真
^ : 异(是否不同) 是不同 真, 是相同 假,
! : 非 取反 非真则假 非假则真
参与逻辑运算符的量 都必须是 Boolean类型的, 结果也都是Boolean类型的
&&:和&执行结果一样, && 效率高。 true && false ,当左侧是false的时候 右边不再看
||:和|执行结果一样, || 效率高。 false && true ,当左侧是true的时候 右边不再看
第三天
-一.结构
顺序结构
选择结构
循环结构
二.if
1.三种if的书写格式和执行流程
if(关系表达式) {
语句体;
}
--------------------------------
if(关系表达式) {
语句体1
}else {
语句体2
}
------------------------------
if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
2.掌握比较两个值较大值的编写
掌握多个数据分段判断
三.switch
1.表达值可以是byte short int char 枚举 String
2.swith的书写格式
switch(表达式){}}
case 值1:
语句;
break;
case 值2:
语句;
break;
case 值3:
语句;
break;
default:
语句;
break;
四.for循环
1.书写格式和执行流程
for(初始化语句;判断条件语句;控制条件语句){
循环体;
}
执行顺序:
for(A;B;C){
D;
}
A BDC BDC BDC BDC ... 直到B为false,则结束循环;
2.掌握求范围内数 奇偶数 被三整除数 水仙花数的应用
五.while循环
1.书写格式和执行流程
初始化语句;
while(循环判断条件){
循环体;
控制条件语句;
}
执行流程:
do while循环:
初始化语句;
do{
循环体;
控制条件语句;
}while(循环条件);
六.三种循环的区别
dowhile 和 for 和while的区别:
dowhile,先执行后判断的,所以肯定会执行一次循环体。
for和while 第一次判断是false话 不会再执行循环体
for和while有什么区别:
for循环的初始化变量一般都定义在for循环的里面。所以for循环结束之后 变量释放了 就不能再用了
while循环的初始化变量都是定义在while循环的外面,所以while循环结束后 还是能继续使用。
for循环的变形格式:
int x=1;
for(; x<=10; x++){
System.out.println("爱生活,爱Java");
}
int z=1;
for( ;z<=10;){
System.out.println("爱生活,爱Java");
z++;
}
七.死循环
long i = 0;
for (;true;){
System.out.println(i++);
}
while(true){
System.out.println(i++);
}
do{
System.out.println(i++);
}while(true);
八.
控制循环的语句break和continue:
break:的作用就是强制中断循环。
注意事项:break只能写在循环中和switch结构中。
continue:终止本次循环,继续下次循环。
第四天
一.Random 随机数
导包:import java.util.Random;
创建对象: Random r = new Random();
获取随机数: int a = r.nextInt(10);
int a1 = r.nextInt(100)+1;
int a2 = r.nextInt(41)+40;// 40-80的随机数
练习:猜数字小游戏;
二.数组
1.属于引用类型
2.数组的定义:
变量 只能存一个
数组是一个容器,存很多,但是固定长度
数组是存储多个变量(元素)的东西(容器)
这多个变量的数据类型要一致
格式1:数据类型[] 数组名;
格式2:数据类型 数组名[];
int[] arr;
char[] arr1;
boolean[] arr2;
boolean arr3[];
3.初始化:
java中的数组必须先初始化,然后才能使用。
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值
动态初始化:
由系统给出空常量
数组长度其实就是数组中元素的个数
int[] arr = new int[3]; // 0 0 0
byte[] arr1 = new byte[4]; // 0 0 0 0
boolean[] arr2 = new boolean[5]; // false false false false false
初始化:
整型的: 0
浮点型:0.0
布尔型:false
字符型:空字符 '\u0000'
System.out.println(arr2[2]);
静态初始化: 由系统决定长度
boolean[] arr1 = {true,true,true};
boolean[] arr2 = new boolean[]{true,true,true};
3.通过内存图解理解数组
栈 存储局部变量
堆 存储new出来的东西
理解两个数组指向同一个地址
4.数组的遍历:
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
题目:
int[] arr = {1,2,3,4,5,6,6,7,8};
获取数组中大于5的元素:
分析:
首先拿到数组中的每个元素。
然后拿着每个元素和5比较,大于我的我就打印 ,不大于5的就不打印
求数组的最大值:
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if(max<arr[i]){
max=arr[i];
}
}
三.二维数组:
int[] arr = new int[]{1,2,3};
有没有这样的数组, 数组里面继续存数组
int[][] arr1 = new int[3][4]; //这样的定义 二维数组 里面的每个一维数组 长度都一样
第五天
一.方法
简单来说 方法就是完成特定功能的代码块
格式
修饰符 返回值类型 方法名 (参数列表) {
方法体;
return 返回值;
}
修饰符 目前记住 public static
返回值类型 用于限定返回值的数据类型
方法名 一个名字 为了方便我们调用方法
参数类型 用于接受调用方法时传入的数据类型
参数名 用于 接受调用方法时传入的数据的变量
方法体 完成功能的代码
return 结束方法 把返回值带给调用者
注意事项
写一个方法首先由两点需要明确
返回值类型 明确功能结果的数据类型
参数列表 明确有几个参数, 以及参数的类型
方法调用
单独调用 没有意义
输出调用 有意义 但是不够好 因为我不一定要把结果输出
赋值调用 推荐方式
二.方法的重载
概述
在同一个类中 允许存在一个以上的同名方法 只有它们的参数个数或者参数类型不同即可
特点
与返回值类型无关 只看方法名和参数列表
在调用时 虚拟机通过参数列表的不同来区分同名方法
三.方法参数类型
方法的参数是基本类型的时候
形式参数的改变不影响实际参数
形式参数 用于接受实际数据的变量
实际参数 实际参数运算运算的变量
方法的参数是引用类型的时候
形式参数的改变直接影响实际参数
第六天
一.面向对象
面向过程, 其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能 方法相互 调用,完成需求。
面向对象思想 就是不断的创建对象,使用对象,指挥对象做事情。(如果有对象,直接用对象,对我 们直接提供服务)
面向过程:
强调的是过程,所有事情都需要自己完成
面向对象:
是一种更符合我们思想习惯的思想(懒人思想,我把事情自己不做,交给别人去做)
可以将复杂的事情简单化(对使用者来说简单了,对象里面还是很复杂的)
将我们从执行者变成了指挥者角色发生了转换
我们学习编程是为了什么
为了把我们日常生活中实物用学习语言描述出来
我们如何描述现实世界事物
属性 就是该事物的描述信息(事物身上的名词)
行为 就是该事物能够做什么(事物身上的动词)
二. private
private关键字:
是一个权限修饰符。
可以修饰成员(成员变量和成员方法)
被private修饰的成员只在本类中才能访问
private最常见的应用:
–把成员变量用private修饰
–提供对应的getXxx()/setXxx()方法
三.封装
封装概述
是面向对象三大特征之一
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无直 接操作和修改。就像刚才说的年龄。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
成员变量private,提供对应的getXxx()/setXxx()方法
把代码用方法进行封装,提高了代码的复用性
四.this
this:代表所在类的对象引用
方法被哪个对象调用,this就代表那个对象
什么时候使用this呢
局部变量和成员变量重名
五.构造方法
构造方法作用概述
–给对象的数据进行初始化
构造方法格式
–方法名与类名相同
–没有返回值类型,连void都没有
–没有具体的返回值
构造方法的注意事项
如果你不提供构造方法,系统会给出默认构造方法
如果你提供了构造方法,系统将不再提供
构造方法也是可以重载的,重载条件和普通方法相同 |
|