java总结知识点

Day04

1:switch语句(掌握)

(1)格式:

switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ...

default:

} 语句体n+1; break; 格式解释说明: switch:说明这是switch语句。 表达式:可以是byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 case:后面的值就是要和表达式进行比较的值 break:表示程序到这里中断,跳出switch语句 default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else (2)面试题 switch语句的表达式可以是byte吗?可以是long吗?可以是String吗? 可以,不可以,JDK7以后可以 (3)执行流程: A:首先计算表达式的值 B:和每一个case进行匹配,如果有就执行对应的语句体,看到break就结束。 C:如果没有匹配,就执行default的语句体n+1。 (4)注意事项: A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的 B:default可以省略吗? 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。 特殊情况: case就可以把值固定。 A,B,C,D C:break可以省略吗? 可以省略,但是结果可能不是我们想要的。 会出现一个现象:case穿透。 最终我们建议不要省略 D:default一定要在最后吗? 不是,可以在任意位置。但是建议在最后。

E:switch语句的结束条件 a:遇到break就结束了 b:执行到末尾就结束了 (5)案例: A:键盘录入一个数字(1-7),输出对应的星期几。 B:单项选择题 C:键盘录入一个字符串的问题 String s = sc.nextLine(); D:根据给定的月份,输出对应的季节 (6)if语句和switch语句各自的场景 A:if 针对boolean类型的判断 针对一个范围的判断 针对几个常量的判断 B:switch 针对几个常量的判断

2:循环语句(掌握)

(1)有三种:for,while,do...while

(2)for循环语句

A:格式

for(初始化语句;判断条件语句;控制条件语句){ 循环体语句;

}

执行流程: a:执行初始化语句 b:执行判断条件语句 如果这里是true,就继续 如果这里是false,循环就结束 c:执行循环体语句 d:执行控制条件语句 e:回到b B:注意事项 a:判断条件语句无论简单还是复杂,结果是boolean类型 b:循环体语句如果是一条,可以省略大括号,但是不建议 c:有分号就没有左大括号,有左大括号就没有分号 C:案例 a:输出10次HelloWorld b:输出1-10的数据 c:输出10-1的数据 d:求1-10的和 e:求1-100的和,求1-100的偶数和,求1-100的奇数和 f:求5的阶乘

g:在控制台打印水仙花数 h:统计水仙花个数 i:改进版的回文数 一个五位数 个位 = 万位 十位 = 千位 个位 + 十位 + 千位 + 万位 = 百位 j:统计1-1000之间同时满足如下条件的数据有多少个 x%3==2 x%5==3 x%7==2 (3)while循环 A:基本格式 while(判断条件语句) { 循环体语句; } 扩展格式: 初始化语句; while(判断条件语句){ 循环体语句; 控制条件语句; } 通过查看这个格式,我们就知道while循环可以和for循环等价转换。 B:while的练习 把for语句的练习用while改进 C:for和while的区别 a:使用上的区别 for语句的那个控制条件变量,在循环结束后不能在使用了。 而while的可以继续使用。 b:理解上的区别 for适合于一个范围的判断 while适合次数不明确的 举例:吃葡萄 D:案例: a:珠穆朗玛峰问题 b:小芳存钱问题(break以后才能做) (4)do...while循环 A:基本格式 do { 循环体语句; }while(判断条件语句);

扩展格式:

初始化语句;

do {

循环体语句;

控制条件语句;

}while(判断条件语句);

通过查看格式,我们就可以看出其实三种循环的格式可以是统一的。 B:三种循环的区别

a:do...while循环至少执行一次循环体

b:for和while必须先判断条件是否是true,然后后才能决定是否执行循环体

(5)循环使用的注意事项(死循环)

A:一定要注意修改控制条件,否则容易出现死循环。

B:最简单的死循环格式

a:while(true){...}

b:for(;;){}

3:控制跳转语句(掌握)

(1)break:中断的意思

A:用在循环和switch语句中,离开此应用场景无意义。

B:作用

a:跳出单层循环

b:跳出多层循环,需要标签语句的配合

(2)continue:继续

A:用在循环中,离开此应用场景无意义。

B:作用

a:跳出单层循环的一次,可以继续下一次

C:填空题

for(int x=1; x<=10; x++) {

if(x%3 == 0) {

//补齐代码

}

System.out.println("Java基础班");

}

如何让控制台输出2次:Java基础班 如何让控制台输出7次:Java基础班 如何让控制台输出13次:Java基础班 (3)return:返回 A:用于结束方法的,后面还会在继续讲解和使用。 B:一旦遇到return,程序就不会在继续往后执行。

Day05

1:方法(掌握)

(1)方法:就是完成特定功能的代码块。

注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法。

(2)格式:

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { 方法体语句;

return 返回值;

}

修饰符:目前就用 public static。后面再详细讲解其他修饰符

返回值类型:就是功能结果的数据类型

方法名:就是起了一个名字,方便我们调用该方法。

参数类型:就是参数的数据类型

参数名:就是变量

参数分类:

实参:实际参与运算的数据

形参:方法上定义的,用于接收实际参数的变量

方法体语句:就是完成功能的代码块

return:结束方法

返回值:就是功能的结果,由return带给调用者。

(3)两个明确:

返回值类型:结果的数据类型

参数列表:参数的个数及对应的数据类型

(4)方法调用

A:有明确返回值的方法

a:单独调用,没有意义

b:输出调用,不是很好,因为我可能需要不结果进行进一步的操作。但是讲课一般我就用了。

c:赋值调用,推荐方案

B:void类型修饰的方法

a:单独调用

(5)案例:

A:求和方案

B:获取两个数中的较大值

C:比较两个数据是否相同

D:获取三个数中的最大值

E:输出m行n列的星形

F:输出nn乘法表

(6)方法的注意事项

A:方法不调用不执行

B:方法之间是平级关系,不能嵌套定义

C:方法定义的时候,参数是用,隔开的

D:方法在调用的时候,不用在传递数据类型 E:如果方法有明确的返回值类型,就必须有return语句返回。 (7)方法重载 在同一个类中,方法名相同,参数列表不同。与返回值无关。

参数列表不同:

参数的个数不同。

参数的对应的数据类型不同。

(8)方法重载案例

不同的类型的多个同名方法的比较。

2:数组(掌握)

(1)数组:存储同一种数据类型的多个元素的容器。

(2)特点:每一个元素都有编号,从0开始,最大编号是长度-1。 编号的专业叫法:索引

(3)定义格式

A:数据类型[] 数组名;

B:数据类型 数组名[];

推荐是用A方式,B方法就忘了吧。

但是要能看懂

(4)数组的初始化

A:动态初始化

只给长度,系统给出默认值

举例:int[] arr = new int[3]; B:静态初始化 给出值,系统决定长度 举例:int[] arr = new int[]{1,2,3}; 简化版:int[] arr = {1,2,3}; (5)Java的内存分配 A:栈 存储局部变量 B:堆 存储所有new出来的 C:方法区(面向对象部分详细讲解) D:本地方法区(系统相关) E:寄存器(CPU使用) 注意: a:局部变量 在方法定义中或者方法声明上定义的变量。 b:栈内存和堆内存的区别 栈:数据使用完毕,就消失。 堆:每一个new出来的东西都有地址 每一个变量都有默认值

byte,short,int,long 0 float,double 0.0 char '\u0000' boolean false 引用类型 null 数据使用完毕后,在垃圾回收器空闲的时候回收。 (6)数组内存图 A:一个数组 B:二个数组 C:三个数组(两个栈变量指向同一个堆内存) (7)数组的常见操作 A:遍历 方式1: public static void printArray(int[] arr) { for(int x=0; x<arr.length; x++) { System.out.println(arr[x]); } } 方式2: public static void printArray(int[] arr) { System.out.print("["); for(int x=0; x<arr.length; x++) { if(x == arr.length-1) { System.out.println(arr[x]+"]"); }else { System.out.println(arr[x]+", "); } } } B:最值 最大值: public static int getMax(int[] arr) { int max = arr[0]; for(int x=1; x<arr.length; x++) { if(arr[x] > max) { max = arr[x]; } } return max; }

最小值: public static int getMin(int[] arr) { int min = arr[0]; for(int x=1; x<arr.length; x++) { if(arr[x] < min) { min = arr[x]; } } return min; } C:逆序 方式1: public static void reverse(int[] arr) { for(int x=0; x<arr.length/2; x++) { int temp = arr[x]; arr[x] = arr[arr.length-1-x]; arr[arr.length-1-x] = temp; } } 方式2: public static void reverse(int[] arr) { for(int start=0,end=arr.length-1; start<=end; start++,end--) { int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; } } D:查表 public static String getString(String[] strArray,int index) { return strArray[index]; } E:基本查找 方式1: public static int getIndex(int[] arr,int value) { for(int x=0; x<arr.length; x++) { if(arr[x] == value) { return x; } } return -1;

} 方式2: public static int getIndex(int[] arr,int value) { int index = -1; for(int x=0; x<arr.length; x++) { if(arr[x] == value) { index = x; break; } } return index; }

 

第二篇:Java语言程序设计课程知识点总结

Java语言程序设计课程知识点总结

by wgc

1、构造方法

无返回值,和类名相同 new调用

2、方法的重载

(1同3不同)方法名称相同 参数个数 类型 顺序不同 与返回值类型无关 构造方法重载

普通方法重载

3、变量的作用域

成员变量

局部变量

局部变量隐藏成员变量 this

4、this关键字

得到当前对象的成员变量,代表当前对象

5、对象作为方法的参数

对象 传引用

基本类型 传值

6、 包

pakage

import

7、访问控制修饰符

public 缺省的

属性和方法

private

缺省的

protected

public

8、static

类成员变量(静态成员变量)

实例成员变量

类方法(静态方法)

类成员变量在类加载时初始化(分配内存空间)

实例方法可以调用任何成员变量和方法

类方法只能调用类变量和类方法

9、继承

定义 extends

属性和方法的继承

public 不同包能继承

protected 不同包能继承(访问不一样,必须在子类中才能访问)

友好的 同一包中能继承

private 不能被继承

总结:

(1)、当父子类定义在同一个包中时,父类的所有非私有属性和方法可以被子类

继承

(2)、当父子类定义在不同包中时(父类被public修饰),父类的被public和

protected 修饰的属性和方法可以被子类继承。

10、属性的隐藏

子类与父类成员变量名字相同时,子类成员变量隐藏了父类的成员变量 注意:

在子类中调用从父类继承的方法时,和子类的成员变量没关系。

11、方法的覆盖

子类与父类方法名字相同、参数类型、个数、顺序都相同时,子类方法覆盖

父类的方法。

12、继承关系中的构造方法

子类实例化时,会首先调用父类(或父类的父类)的构造方法,然后在调用自己

的构造方法。

13、super关键字

调用父类构造方法

默认无参super();

有参 super(a);

注:super关键字必须为子类构造方法的第一条语句。

调用父类被覆盖的普通方法,或被隐藏的成员变量

super.show();

super.a;

14、上转型对象(父、子类对象的使用与转化)

子类实例赋给父类的引用

上转型对象与父类对象唯一的区别为上转型对象调用子类覆盖(重写)的方法。 多态

15、abstract

抽象类与抽象方法

抽象类中可以有抽象方法和普通方法

抽象方法必须定义在抽象类中

抽象方法只有定义,没有实现。

通过继承抽象类的子类对象来调用抽象类中的方法

一个非抽象类继承抽象类,必须覆盖(重写)抽象类中的抽象方法。

16、final

修饰类

修饰成员变量

修饰局部变更

修饰方法

17、接口

interface

implements

接口中成员变量都是公共的、静态的常量 public static final int MIN=0; 接口中的方法都是公共的、抽象的 public abstract void method(); 接口之间可以多继承 // interface B extends A,Computable 类实现(implemnets)某个接口,必须实现里边所有方法

接口回调

把实现某个接口的类的对象赋给此接口的变量,称为接口回调 用法与对象的上转型对象相同。

18、abstract类与接口的比较

abstract类和接口都可以有abstract方法。

接口中只可以有常量,不能有变量;而abstract类中既可以有常量也可以有变量。 abstract类中也可以有非abstract方法,接口不可以。

意义区别:

抽象类表示事物之间纵向的联系。 如:车、汽车、公共汽车

接口表示事物之间横向的联系。 如:鸟、飞机、超人 (都能飞)

19、内部类

相关推荐