javaSE第五天

第五天????22

1. 方法(掌握)????22

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

(2)格式:????22

(3)两个明确:????23

(4)方法调用????23

(5)案例:????23

(6)方法的注意事项????23

(7)方法重载????23

(8)方法重载案例????24

2. 数组(掌握)????24

(1)数组定义:????24

(2)特点:????24

(3)定义格式????24

(4)数组的初始化????24

A:动态初始化????24

B:静态初始化????24

(5)Java的内存分配????24

(6)数组内存图????25

(7)数组操作的两个常见小问题????25

(8)数组的常见操作????25

A:遍历????25

B:最值????26

最大值:????26

最小值:????26

C:逆序????26

D:查表????27

E:基本查找????27

?

?

第五天

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:数据类型[] 数组名;如: int[] a;//定义一个int类型的数组a变量

????????B:数据类型 数组名[]; 如:int a[];//定义一个int类型的a数组变量

????????

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

????????但是要能看懂(两者的效果是一样的,都是定义一个数组)

????(4)数组的初始化

*定义:初始化就是为数组开辟内存空间,并未每个数组元素赋以初值

????????A:动态初始化

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

????????????

????????????举例:int[] arr = new int[3];

????????B:静态初始化

????????????给出值,系统决定长度

????????????

????????????举例:int[] arr = new
int[]{1,2,3};

????????????简化版:int[] arr = {1,2,3};//其实也隐含的进行了new操作

????(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)数组操作的两个常见小问题

1. ArrayIndexOutOfBoundsException :数组下标越界异常

原因分析:你访问了不存在的索引

2. NullPointerException:空指针异常

原因分析:数组已经不再指向堆内存,而你还用数组名去访问元素

????(8)数组的常见操作

????????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;

????}

?

????????

时间: 2024-08-10 17:08:43

javaSE第五天的相关文章

JavaSE(五)JAVA对象向上转型和向下转型

今天做了一个测试的题目,发现自己还是很多问题没有静下心来做.很多问题是可以自己解决的但是自己一是没有读清题意,二是自己心里太急躁了.所以这个要自己应以为鉴! 对象的转型问题其实并不复杂,我们记住一句话:"父类引用指向子类对象". java中对象的转型分为向上转型和向下转型 一.对象的向上转型 1.1.定义 子类引用的对象转换为父类类型称为向上转型.通俗地说就是是将子类对象转为父类对象.此处父类对象可以是接口 1.2.解释 比如说我有两个类,一个是父类Animal,另一个是Bird类为子

JAVASE(十五) 泛型 :泛型用例、自定义泛型类、通配符

1.泛型在集合中的使用 1.1 在集合中使用泛型之前的例子 ? 为什么要有泛型(Generic)? 1. 解决元素存储的安全性问题2. 解决获取数据元素时,需要类型强转的问题 ? ? 1.2 在集合中使用泛型例子1 List<String> list = new ArrayList<String>(); list.add("aaaa"); List<Integer> list2 = new ArrayList<Integer>(); li

(五)流程控制

JavaSE(五) --流程控制 一.单分支 If(条件表达式){ 操作1: } 表示如果条件表达式成立,就执行操作1:如果条件表达式不成立,就不执行里面的操作1,也就是什么也不会发生. 二.双分支 If(条件表达式){ 操作1: }else{ 操作2: } 表示如果条件表达式成立就执行操作1,否则执行操作2 三.多分支 1.if-else类型 If(条件表达式1){ 操作1: } else If(条件表达式2){ 操作2: }else{ 操作3: } 2.switch类型 Switch(变量)

JavaSE学习笔记(五)——类与对象

一.  类和对象 1.1           面向对象与面向过程的区别 1.面向过程 采用面向过程必须了解整个过程,每个步骤都有因果关系,每个因果关系都构成了一个步骤,多个步骤就构成了一个系统,因为存在因果关系每个步骤很难分离,非常紧密,耦合度高,当任何一步骤出现问题,将会影响到所有的系统.如:采用面向过程生产电脑,那么他不会分CPU.主板和硬盘,它会按照电脑的工作流程一次成型. 2.面向对象 面向对象对会将现实世界分割成不同的单元(对象),实现各个对象,如果完成某个功能,只需要将各个对象协作起

javaSE第十五天

第十五天????117 1. 对象数组(掌握)????117 (1)定义:????117 (2)对象数组的内存图解????117 (3)案例:????117 2. 集合(Collection)(掌握)????119 (1)集合的由来?????119 (2)集合和数组的区别?????119 A:长度区别????119 B:内容区别????119 C:元素内容????119 (3)集合的继承体系结构?????119 (4)Collection的功能概述????120 (5)Collection集合的

javaSE第二十五天

第二十五天????399 1:如何让Netbeans的东西Eclipse能访问.????399 2:GUI(了解)????399 (1)用户图形界面????399 (2)两个包:????399 (3)主要方法:????399 A:javax.swing包下的方法????399 B:监听机制的应用????400 (4)GUI的继承体系????400 (5)事件监听机制(理解)????401 (6)适配器模式(理解)????401 案例解释????401 1. UserDao(顶层接口)????40

JavaSE入门学习46:文件传输基础之I/O流(五)(Java序列化)

六对象的序列化和反序列化 (1)序列化和反序列化概述 Java提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的 数据.有关对象的类型的信息和存储在对象中数据的类型. 将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息.对 象的数据,还有对象中的数据类型可以用来在内存中新建对象. 整个过程都是Java虚拟机(JVM)独立的,也就是说,在一个平台上序列化的对象可以在另一个完全不同的平台上 反序列化该对象. (2

JavaSE学习(五):数组及其基础操作

第一节 数组 1.1 数组定义 将具有相同数据类型的数据集中再一个容器中,这个容器我们称之为数组.数组也是引用数据类型中的一种. 1.2 数组的声明的方式 1.方式一: 数据类型[] 数组名 = new 数据类型[数组的长度]; 2.方式二: 数据类型[] 数组名 = {数值1,数值2...}; 3.方式三: 数据类型[] 数组名 = new 数据类型[] {数值1,数值2....}; 1.3 Java中的三种注释方式 方式一:单行注释 //   解释当前行代码 方式二:多行注释 /*注释内容*

JavaSE——(五):封装、继承、多态

目录 一.封装 1.1.为什么需要封装 1.2.封装属性 1.3.自动封装属性 1.3.1.创建单个 1.3.2.批量创建 二.继承 2.1. Java继承概要 2.2.为什么需要继承 2.3.实现继承 2.2. Java继承的特征 2.2.1.传递性 2.2.2.单根性 三.构造方法 3.1.构造方法概要 3.2.带参数的构造方法 四.多态 4.1.LSP(里氏代换原则) 4.2.重写(override) 4.3.多态实现 五.示例与视频下载 六.面试题 java面向对象的三大特性是:封装.继