Java 基本班总结
JAVASE内容
① java基础语法
② 面对对象
③ API
④ 集合
⑤ IO
⑥ 网络编程
⑦ 线程
⑧ 反射
第一天 Jave概述 JDK安装和配置 常量变量...
主要讲了三部分:
一. Java概述 :1 Java发展历史 2 JVM,JRE,JDK的概念、作用、关系
3 DOS命令 4 HelloWorld案例与常见问题
二. JDK的安装和环境配置、Notepad软件的安装和配置
三. 注释、关键字 常量、变量、数据类型、标识符、转换类型
重点:①HelloWorld案例与常见问题
②关键字 常量、变量、数据类型、标识符、转换类型
第二天 Eclipse安装 运算符 键盘录入
主要讲了三部分:
一. Eclipse的安装和使用
二.运算符
五种:1 算术运算符 2 赋值运算符 3 关系运算符
4 逻辑运算符 5 三元运算符
三.键盘录入
导包: import java.util.Scanner;
创建键盘录入对象: Scanner sc = new Scanner(System.in);
接受数据: int i = sc.nextTnt();
重点:
① / 整数相除,结果是整数
% 结果的正负, 只和左边有关
综合:如何获取四位数中的每位数
个位: num / 10 ^0 % 10,
十位: num / 10 ^1 % 10;
百位: num / 10 ^2 % 10;
千位: num / 10 ^3 % 10.
② 区分
' a' ; 是字符常量
char a = 'a' ; 是赋值运算
当字符不参与运算时------------- 就是字符常量
当字符参与运算时---------------- 其实是那该字符在ASCII中对应的数值操作, char数据类型参与运算可以自动转换化为int
当字符串参与运算时------------- ""字符串在前/中间, 不是做加法, 而是字符串拼接
------------- ""字符串在后, 先参与运算, 再做字符串拼接
③ a++ ++a a-- --a 的运算规则
单独使用------------- 无论++ 与-- 在变量前后,结果都是一样的
参与运算时---------- 若++ 或- - 在变量后面, 先运算, 后自增
---------- 若++ 或- - 在变量前面, 先自增, 后运算
④ 区分赋值运算符 = 和 关系运算符 ==
关系的运算符的结果是loolean类型 true / false
num % 2 == 0 true为偶数
num % 2 != 0 true为奇数
⑤ && 遇到false才短路
|| 遇到true 才短路
⑥ 在求两个数或三个数的最值时, 用三元运算符是最简单的
第三天 选择语句 循环语句 控制循环语句
主要分三部分:
一. 选择语句
if语句三种格式
switch语句
switch(表达式) {
case XX :
break;
...
default:
break;
}
二. 循环语句
1 需要循环满足的条件:
A 有重复的事要做
B 有规律
2 for循环语句
for ( 初始化语句; 判断条件语句; 控制条件语句 ) {
① ② ③
循环体语句;
④
}
执行顺序: ①②④③ --- ②④③ ---- ②④③ ......... ----②④③ --- ②
3 while循环语句
两种格式:
① 基本格式
while ( 判断条件语句) {
循环体语句;
}
② 扩展格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
4 do ..while循环语句
① 基本格式
do {
循环体语句;
} while((判断条件语句);
② 扩展格式
初始化语句;
do {
循环体语句;
控制条件语句;
} while((判断条件语句);
5 三种循环的区别
do… while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
6 for 和while 的区别
for 循环的的初始变量,在循环结束后,不可以被访问。
while 循环的的初始变量在循坏外,在循环结束后,是可以被继续使用的。
三. 控制循环语句
1. Break 的使用场景和作用
break: 中断的有意思 ( 结束当前所在循环 )
使用场景: A 在switch 选择语句中
B 在循环中
作用: 跳出单次循环
离开使用场景是没有意义的
2. continue 的使用场景和作用
continue: 继续的意思 ( 结束本次循环,继续此次循环 )
使用场景: 循环中
重点:
① if () {...} else {...}
if () {...} else if {...} ... else
都是单体语句
② 在 if 语句中, 优先考虑 " 边界值"
③ switch语句的两种结束情况:
a. 遇到break
b. 遇到右大括号
注: break 有无的区别 --------case穿透现象
第四天 Random 一维数组 二维数组
主要讲了三部分:
一 Random 随机的类
1 步骤: ①导包 import java.util.Random;
②创建对象 Random r = new Random();
③获取随机数 int s = r.nextInt( n ); 调用Random对象的nextInt()方法
// ( n )代表的是随机数的范围, 随机产生的是 [0,N) 的数
2 延伸: 随机产生1-100之间的随机数
int s = r.nextInt( 100 ) + 1;
3 猜数字游戏
运用 while ( true ) {循环体语句} //无限循环
break; //结束循环
二 一维数组
1 格式: 声明数组: 数据类型[] 数组名 ;
给数组赋值: 数组名 = new 数据类型[数组的长度];
数组的长度: 数组中的元素的个数
2 动态初始化: 初始化时只指定数组长度,由系统为数组分配初始值
数据类型[ ] 数组名 = new 数据类型[ 数组长度];
静态初始化: 初始化时指定每个数组元素的初始值,由系统决定数组长度
数据类型[ ] 数组名 = new 数据类型 [ ] {元素1.元素2.... };
3 重点: ①一维数组的遍历
②一维数组获取最值
三 二维数组
1 格式: ① 数据类型[ ] [ ]变量名 = new 数据类型[m][n]
m : 代表有m 个一维数组
n: 每个一维素组中有 n个元素
② 数据类型[ ][] 变量名 = new 数据类型 [ ] [ ] {元素1.元素2.... };
2 重点: 二维数组的遍历
for( int i = 0;i < arr.length; i++ ) {
for( int j = 0; j< arr[i].length; j++ ) {
System.out.print(arr[i][j]+" ");
}
System.out.println(); //换行
}
第五天 方法
一. 方法的概述:
1 方法 : 其实就是完成特定功能的代码块 ( 在c语言中称: 函数 )
定义格式:
修饰符 返回值类型 方法名( 参数类型 参数名1, 参数类型 参数名2 ...) {
方法体;
return 返回值; ( 别忘了书写return )
}
2 编写方法: 写一个方法有两个明确:
A 返回值类型 明确功能结果的数据类型
B 参数列表 明确有几个参数, 以及参数的数据类型
3 方法的调用: 方法不调用,不执行
A 单独调用 ,没有意义
sum( 10 ,20 );
B 输出调用
System.out.println( sum(10 , 20 )); 故调用 : 方法名, 实参
C 赋值调用-------------------推荐
int result = add( 10 , 20 ); //
System.out.println( result);
4 return的作用
A 返回值类型
B 结束该方法
5 求和案例
求和方法图解
两个数是否相等
两个数求最大值
三个数求最大值
二 void修饰的方法的调用
1) void的由来:
当方法中没有任何内容需要返回给调用者时
2) 使用void的两个明确:
A 没有明确的返回值 ( 没有具体的值返回给调用者 )
B 明确参数 ( 可以有参数, 也可以无 )
3) viod的调用:
单独调用.
4) 案例
① 打印1-n的数
② 运用方法, viod的调用, 打印水仙花数
三 方法重载 参数传递
1. 方法重载
1) 概念: 在同一个类中, 出现了方法名相同的的情况.
2) 特点: 方法名相同, 参数列表不同, 与返回值 ( 数据类型 )无关.
参数列表不同: 参数个数不同
参数数据类型不同
参数列表的顺序不同
注意: 在方法调用的时候, java虚拟机将通过参数列表的不同来区分同名的方法.
2. 参数传递
1) 重点: 参数类型
①方法的参数如果是基本数据类型 :
形式参数的改变不影响实际参数的值
②如果参数是引用数据类型 :
形式参数的改变直接影响实参值
eg: 数组
主方法的数组 要引用给 其他方法, 实际引用的是数组的地址,
所以任何一个方法里的数组改变, 都将影响数组的值.
2) 案例:
四. 方法操作数组练习
1 .遍历数组
2. 数组获取最值
3. 数组元素求和
第六天 基础语法综合练习
一. Eclipse的断点调试
1.概念: 什么是断点?
就是一个标记,从哪里开始。
2 设置断点后的程序:
右键 -- Debug as -- Java Application
二. 综合练习
1 循环, if和switch练习
键盘录入月份,输出对应的季节(if…else或switch实现)
2 打印5位数中所有的回文数
题: 输出5位数中所有的回文数 ,并统计回文数个数.
( 回文数 : 个位和万位相同, 十位与千位相同 )
3 不死神兔问题
4 求数组中满足要求的元素和
5 裁判评分
题: 6个评委评分,去掉最高分,去掉最低分,求剩下4个评委给出的平均分.
6 数组反转
题: 运用方法输出反转后的数组.
7 数组基本查找
题:
如果查找的元素不存在,就返回 索引index = x,
如果查找的元素不存在,就返回 index = -1 ,
8 数据加密
第七天 对象 对象的封装 对象构造方法
一. 面向对象
1 对象
1) 概念: 它是一种思想 , 面向对象是基于面向过程的思想 .
不断创建对象
面向过程: 强调的是每一个功能的步骤
面向对象: 强调的是对象 ,然后让对象去调试功能
2) 面向对象的思想特点:
A 是一种符合我们思考习惯的思想
B 将复杂的事情简单化
C 将执行者转化为指挥者
2. 类与对象的概述
1) 我们学习编程是为了什么?
用 java 语言来描述现实中的事物
如何描述现实中的事物?
事物: 属性 (成员变量) ---- 事物的描述信息
行为 (成员方法) ---- 事物能够做什么
java 语言通过类来描述现实中的事物. 我们可以定义一个类 来描述事物.
Java 语言最基本的单位是 类.
类: 一种相关的属性和行为的集合.
用 class 修饰的一个东西
成员变量 :
位置不同: 类中,方法外
初始化不同: 不需要给初始化值
String 默认值 null
int 默认值 0
成员方法 : 与以前定义的方法一模一样
去掉 static
对象: 就是该事物的具体体现
是new 出来的某个个类
2) 举例: 学生类
手机类
3) 成员变量与局部变量的区别
A 类中位置
局部变量 : 方法内
成员变量 : 类中,方法外
B 内存中位置
局部变量 : 在栈中 (因为方法在栈中)
成员变量 : 在堆中
C 初始化值不同
局部变量 : 没有默认初始化值 , 必须手动赋值
成员变量 : 都有默认初始化值
D 生命周期不一样
局部变量 : 随着方法的结束而弹栈
成员变量 : 随着对象的创建而存在
4) 面向对象的三大特性
封装 继承 多态
二. 封装对象
封装原则:
将不需要对我提供的内容都隐藏起来
把属性隐藏, 提供公共方式访问
封装好处:
通过方法来控制成员变量的操作,提高代码的安全性.
把代码用方法进行封装,提高了代码的复用性
关键词:
① private:
a 是一个权限修饰符。
b 可以修饰成员(成员变量和成员方法)
c 被private修饰的成员只在本类中才能访问
应用:
A 把成员变量用private修饰
B 提供对应的getXxx()/setXxx()方法
② this: 方法被哪个对象调用,this就代表那个对象
当局部变量和成员变量重名时,使用this
三. 对象的构造方法
1 作用: 主要用来给对象的数据进行初始化
2 构造方法格式
a 方法名与类名相同
b没有返回值类型,连void都没有
c没有具体的返回值
3 包含private,无参,有参构造的标准学生类代码:
A 类:
a:成员变量
b:构造方法
无参构造方法
带参构造方法
c:成员方法
getXxx()
setXxx()
B 给成员变量赋值的方式
a 无参构造方法+setXxx()
b 带参构造方法 |
|