第二周知识总结

第二周知识总结

来到培训机构日子已有整整两周的时间
我会不会因为机构中紧张的气氛,进化成为”卷中之王“呢?
卷起来


前言

随着培训机构上课不断进行中,我也见识到了我们班是怎么卷的过程 ,所以,不罗嗦,开始介绍学到了什么

1. 条件语句

switch(表达式){
	case1:
		语句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提供的

面向对象的三大特征

  1. 封装
  2. 继承
  3. 多态

12. 什么是类

类,是能够描述现实世界事物一组属性和行为的集合;

类和事物的关系:一一对应的关系

事物:一定现实真实存在的 学生事物 属性: 姓名,身高, 年龄 等等… 行为: 主要目的学习…
Java中规定,需要定义类描述这个事物 ,Java中最基本单元就是类

代码体现 描述哪一个事物
class 类名{ //类名:满足标识符的规范: 见名知意
}

13.基本类型作为形式参数和引用类型(数组,类,接口) 作为形式参数的特点

实际需求业务中,数组这种在后期用的不是很多,用的"集合" List,Set,Map(高级集合特性),支持长度可变的需求;

基本类型作为形式参数,形式参数改变不影响实际参数; 引用类型作为形式参数,形式参数的改变直接影响实际参数;

14.private

  • 封装
* 就是将显示世界事物的属性隐藏了(加入一个关键字private),
* 私有的,无法直接访问的,对外数据的安全性!(外界不能访问的)
* 对外提供一个方法,公共的(public)访问方法(setXXX()/getXXX())

注意事项:
以后在书写的代码的时候,写一个类,描述真是存在事物的属性的时候, 需要属性(英文单词字母全部小写)全部加入private

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值