第二周知识总结
来到培训机构日子已有整整两周的时间
我会不会因为机构中紧张的气氛,进化成为”卷中之王“呢?
前言
随着培训机构上课不断进行中,我也见识到了我们班是怎么卷的过程 ,所以,不罗嗦,开始介绍学到了什么
1. 条件语句:
switch(表达式){
case 值1:
语句1;
break;
case ……;
……;
break;
default:
语句;
break;
}
if(表达式){
语句;
}else{
语句;
}
if(表达式){
语句;
}else if(表达式){
语句;
}else{
语句;
}
if(条件语句){
if(条件语句){
语句;
}else{
语句;
}
}else{
if(条件语句){
语句;
}else{
语句;
}
}
2. 循环语句
//while循环语句
条件语句;
while(表达式){
循环逻辑语句;
break;
//或者表达式达到了要求就可以退出循环
}
//do{}while()语句;
do{
循环逻辑语句;
break;
}while(表达式/条件语句);
//while()后面加上“;”
//for(){}循环;
for(表达式;条件语句;表达式++/--){
循环逻辑语句;
}
3. 流程控制语句
break:结束这个循环
continue:结束当前循环,立即进入下一次循环
return:在方法中,结束方法区使用,一般,携带返回的结果;很少单独用
4. 方法
定义:就是将某段逻辑代码使用{}包起来,给它起一个名字(标识符),每次需要用到这个功能,直接嗲用标识符即可
- 定义格式
1)有具体返回值类型的方法定义
public static 返回值类型 方法名(参数类型1 参数名称1,参数类型2,参数名2....){
完成业务逻辑; // 以后 操作数据库
return 结果;
}
调用格式
赋值调用
返回值类型 变量名 = 方法名(实际参数1,实际参数2,,,,,) ; // 以后就是前端
给我们传递的
2)没有具体返回值类型的方法定义
public static void 方法名参数类型1 参数名称1,参数类型2 参数名2....){
完成业务逻辑判断
要么在这输出
或者完成其他数据交换...
}
调用格式
单独调用
方法名(实际参数1,实际参数2) ;
5. 方法重载
完全是概念性的东西: 方法名相同,参数列表不同,与返回值无法; overload
参数列表不同:
参数个数不同
参数类型不同
参数顺序位置不同
作用:就是为了提供某个功能扩展;
6. 遍历数组
建立一个方法
因为不返回具体的值,所以创建一个void的方法
class Demo(){
public static void main(String[] args){
int[] array = {1,2,5,6,3,4};
getArray(array);
}
public staitc void getArray(int[] array){
System.out.println("[");
for(int i = 0;i<array.length;i++){
System.out.pirintln(array[i]);
if(i-1 == array.length){
break;
}
System.out.println(",");
}
System.out.println("]");
}
}
7. 利用方法,进行创捷动态数组遍历,并且使用冒泡排序数组
public class Iop {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = new int[10];
scanne(scanner, arr);
array(arr);
getArray(arr);
array(arr);
}
//开始输入数组的值
public static void scanne(Scanner scanner, int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.println("请输入第" + (i + 1) + "个数字:");
array[i] = scanner.nextInt();
}
}
//循环输出数组的值
public static void array(int[] arry) {
System.out.print("[");
for (int i = 0; i < arry.length; i++) {
System.out.print(arry[i]);
if (i + 1 == arry.length) {
break;
}
System.out.print(",");
}
System.out.println("]");
}
//数组排序区
public static void getArray(int[] array) {
for (int i = 0; i < array.length; i++) {
for (int x = 0; x < array.length; x++) {
if (array[i] < array[x]) {//改变排序方向 将 < 换成 >
array[i] = (array[i] + array[x]) - (array[x] = array[i]);
}
}
}
}
}
8. 数组
数组就是容器,这个容器 “只能存储同一种类型的元素”
- 定义格式
动态初始化
和静态初始化
动态初始化:自己定义数组的长度,数组的元素有系统(jvm)默认分配
格式:
* 数据类型[] 数组名称 = new 数据类型[数组长度] ; 推荐第一
种
* 数据类型 数组名称[] = new 数据类型[数组长度] ;
*
* 举例
* int[] arr = new int[3] ;
* int arr[] = new int[3]
所有的数组有一个特点:数组名称[角标或者索引值]:访问数组的元素 ,角标值/索引值从0开始计算
public class ArrayDemo {
public static void main(String[] args) {
//创建一个数组,动态初始化
//数据类型[] 数组名称 = new 数据类型[数组长度] ; 推荐第一种
int[] arr = new int[3] ;
//=左边:
//int:这个数组中元素类型int
//[]:一维数组
//arr:数组的对象名称 arr 变量名 ,定义的时候,见名知意
//=右边
//new: 在java内存中:在堆内存中开辟内存空间 (创建对象)
//int: 创建的对象在堆内存中,存储的int类型
//[3]: 表示数组中存储3个长度
System.out.println(arr) ;//[I@1540e19d: [一维数组,I表示int类型 @xxx:
//地址值的一种标记
//所有的数组有一个特点:数组名称[角标或者索引值]:访问数组的元素 ,角标
//值/索引值,0
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println("-------------------------------");
//重新给元素内容赋值
arr[0] = 10 ;
arr[1] = 5;
arr[2] = 30 ;
System.out.println(arr) ;
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
数组静态初始化:直接我们自己给定的了元素内容,数组的长度由系统默认分配
* 原生的格式写法:
* 数据类型[] 数组对象名 = new 数据类型[]{元素1,元素2,元素3.....} ;
* 数据类型 数组对象名[] = new 数据类型[]{元素1,元素2,元素3.....} ;
* 举例
* int[] arr = new int[]{1,2,3} ;
* int arr[] = new int[]{1,2,3} ;
* 静态初始化的简写格式
* 数据类型[] 数组对象名 = {元素1,元素2,元素3.....} ; 推荐的写法
* 数据类型 数组对象名[] = {元素1,元素2,元素3.....} ;
* int[] arr = {1,2,3} ;
* int arr[] = {1,2,3} ;
*
*
* 在数组中有一个特有的属性:length
* 数组名称.length:获取数组长度
* 数组中的最大索引值: 数组名称.length-1
*
*java.lang.ArrayIndexOutOfBoundsException:数组角标越界异常 :访问了数组中的不
存在的索引就会出现这种问题;
*
* 异常:Exception
* 编译时期异常:idea写代码的,编译通过不了,无法运行; 语法有问题;
* 运行时期异常: 开发者在编写代码的时候,大部分逻辑性不严谨,比如:
数组的5个元素,角标最大4,你访问角标5
代码展示
public class ArrayDemo3 {
public static void main(String[] args) {
// 数据类型[] 数组对象名 = {元素1,元素2,元素3.....} ; 推荐的写法
//创建一个数组,静态初始化
int[] arr = {11,22,66,77,67} ;
System.out.println(arr.length-1);//获取最大索引值
System.out.println(arr) ;//地址值
System.out.println(arr[0]) ;
System.out.println(arr[1]) ;
System.out.println(arr[2]) ;
System.out.println(arr[3]) ;
System.out.println(arr[4]) ;
//java.lang.ArrayIndexOutOfBoundsException:数组角标越界异常 :访问了数
组中的不存在的索引就会出现这种问题;
//System.out.println(arr[5]) ;//jvm在校验:这个语法通过的,满足 数组名
称[索引值]
}
}
9. 算法排序:冒泡算法
多的不说上代码
package title4;
public class Main {
public static void main(String[] args) {
//定义一个数组(静态)
int[] array = {1, 5, 7, 3, 9, 57, 3434};
//使用我自己定义的方法进行数组的遍历和冒泡
traverse(array);
sequence(array);
traverse(array);
}
//数组的遍历
private static void sequence(int[] array) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
if (array[i] < array[j]) {
//使用三元运算法进行比较 我个人觉得如果光是比较的话还是三元比较好用一点
array[i] = (array[i] + array[j]) - (array[j] = array[i]);
}
}
}
}
//数组的冒泡
private static void traverse(int[] array) {
System.out.print("[");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]);
if (i == array.length - 1) {
break;
}
System.out.print(",");
}
System.out.println("]");
}
}
10.面向对象的思想特点以及特征
面向对象基于面向过程,面向过程的代表C语言;
举例:
键盘录入三个数据,获取最大值
1)分析:
2)创建键盘录入
3)写比较的逻辑
4)输出结果...
面向过程:
我们始终是一个执行者;
面向对象基于面向过程:
举例:现实生活中的例子
买电脑
面向过程:
1)了解电脑笔记本的配置
2)自己要去电脑城,了解, 谈价格
3)砍价
4)买完电脑,发现被坑了
面向对象:
1)了解笔记电脑配置---告诉懂行的朋友
2)你的朋友买回来
洗衣服:
面向过程:
1)脱下脏衣服
2)洗衣盆,泡一泡
3)搓一搓
4)透一透,拧一拧
5)晾衣服..
面向对象:
1)脱下脏衣服
2)放在自动洗衣机里面 一键即可
5)晾衣服...
做饭:
面向过程:
1)去菜市场买菜
2)砍价
3)洗菜
4)摘菜
5)切菜
6)炒菜
7)出锅...
面向对象:
1)外卖或者找一个对象
2)等待出锅
高斯林:Java之父 "万物皆对象"
面向对象思想特点是什么?
特点:
1)更符号生活中的思想行为习惯
2)让复杂的事情简单化
3)从执行者变成了指挥者
11. 面向对象语言被语言被设计出来的理念
不断的去创建对象,使用对象,指挥对象做事情!
举例:键盘录入 jdk提供的
面向对象的三大特征
- 封装
- 继承
- 多态
12. 什么是类
类,是能够描述现实世界事物一组属性和行为的集合;
类和事物的关系:一一
对应的关系
事物
:一定现实真实存在的
学生事物属性
: 姓名,身高, 年龄 等等…行为
: 主要目的学习…
Java中规定,需要定义类描述这个事物
,Java中最基本单元就是类
代码体现 描述哪一个事物
class 类名{ //类名:满足标识符的规范: 见名知意
}
13.基本类型作为形式参数和引用类型(数组,类,接口) 作为形式参数的特点
实际需求业务中,数组这种在后期用的不是很多,用的"集合" List,Set,Map(高级集合特性),支持长度可变的需求;
基本类型作为形式参数,形式参数改变不影响实际参数; 引用类型作为形式参数,形式参数的改变直接影响实际参数;
14.private
- 封装
* 就是将显示世界事物的属性隐藏了(加入一个关键字private),
* 私有的,无法直接访问的,对外数据的安全性!(外界不能访问的)
* 对外提供一个方法,公共的(public)访问方法(setXXX()/getXXX())
注意事项:
以后在书写的代码的时候,写一个类,描述真是存在事物的属性的时候, 需要属性(英文单词字母全部小写)全部加入private