java基础知识——第三篇

java中方法的介绍
 函数:Java就是方法。
             方法:就是完成特定功能的代码块
格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
方法体;
return 返回值;
}
修饰符:(最简单的就是写) public static

返回值类型:用于限定返回值的数据类型

方法名:调用起来更加方便
参数类型:
形参(定义时用) 接收实际参数的变量
实参(调用时用) 实际参与运算的变量
方法体:主要用于完成功能的代码。


返回值:就是功能的返回结果。(void无返回结果)
return 返回值:结束方法,把返回值带给调用者


1.2 有明确返回值的方法调用:
A:单独调用(没有意义)
B:输出调用
不是特别好,因为结果可能对于下一步调用来说比较麻烦
C:赋值调用(常用方法)

1.3 书写方法注意的事项:
做到两个明确:
返回值
结果的数据类型
参数
参数的个数,以及类型

1.5 方法的注意事项(依然用定义的加法的方法进行演示):
A:方法不调用不执行
B:方法与方法是平级关系,不能嵌套定义
C:方法定义的时候参数之间用逗号隔开
D:方法调用的时候不用在传递数据类型
E:如果方法有明确的返回值,一定要有return带回一个值

1.9 作业:需求:键盘录入三个数据,返回三个数中的最大值(写成一个方法可以直接调用并且返回值)

import java.util.Scanner;
class FunctionTest3 {
public static void main(String[] args) {
//创建对象
Scanner sc = new Scanner(System.in);

System.out.println("请输入第一个数据:");
int x = sc.nextInt();
System.out.println("请输入第二个数据:");
int y = sc.nextInt();
System.out.println("请输入第三个数据:");
int z = sc.nextInt();

int max = getMax(x,y,z);

System.out.println(max);
}
public static int getMax(int a,int b,int c) {

int temp = a>b?a:b;
int max = temp>c?temp:c;
return max;
}
}

二:方法重载(简单理解就是同名【方法名】不同参【参数】)   [参数个数或者类型不同]

方法重载:
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

方法重载特点
与返回值类型无关,只看方法名和参数列表
在调用时,虚拟机通过参数列表的不同来区分同名方法

三:数组
3.1
数组:数组是存储同一种数据类型多个元素的集合
注意:数组既可以存储基本数据类型,也可以存储引用数据类型
3.2
数组的定义格式
A:数据类型[] 数组名;
int[] arr;
B:数据类型 数组名[];
int arr[];


区别:念法上区别
int[] arr;
int类型的数组,arr
int arr[];
int类型的,arr[]
3.3
数组初始化概述:
A:Java中的数组必须先初始化,然后才能使用。
B:所谓初始化
就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
3.4
如何为数组进行初始化呢?
A:动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
B:静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
3.5
动态初始化:
初始化时只指定数组长度,由系统为数组分配初始值。


格式:
数据类型[] 数组名 = new 数据类型[数组长度];


数组长度其实就是数组中元素的个数。
3.6
为了方便我们获取数组中的元素,数组就为每个元素进行了编号,从0开始。
这个编号,专业叫法:索引。(角标,下标)
有了索引如何获取元素呢?
格式:数组名[索引]

静态初始化:
初始化时指定每个数组元素的初始值,由系统决定数组长度。


格式:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};


简化格式:
数据类型[] 数组名 = {元素1,元素2,…};

数组操作常见的两个小问题
ArrayIndexOutOfBoundsException:数组索引越界异常(访问长度超过了数组的定义长度)

NullPointerException:空指针异常(引用已经不再指向堆内存)
一般来说,只要是引用类型的变量,我们在使用前,都要先判断是否为null。
如果不为null,才继续使用。

3.13
数组遍历:
依次输出数组中的每一个元素


数组遍历标准格式:
for(int x=0; x<数组名.length; x++) {
System.out.println(数组名[x]);
}


作业:数组元素查找(查找指定元素第一次在数组中出现的索引),
封装成方法分析:
返回值:int类型
参数列表:int[]数组,需要查找的元素

四:类与对象
1:我们学习编程语言,就是为了模拟现实世界的事物,实现信息化。
                2:我们是如何描述现实世界的事物的呢?
属性 就是该事物的描述信息(举例,人,汽车)
行为 就是该事物能够做什么(举例,人,汽车)

人:
属性:姓名,年龄,身高,发色
行为(功能):吃,睡觉,玩游戏,

汽车:
属性:颜色,品牌,价格,排量,动力
行为:赛车,拉人

5.3:我们学习的Java语言最基本单位是类,所以,我们就应该把事物用一个类来体现。
5.4:类与对象
类:是一组相关的属性和行为的抽象
对象:是该类事物的具体体现。(实例)

举例:
对象:张三
类:学生

五:类的定义
1 类是用来描述现实世界事物的。

事物:
属性 特征
行为 功能


类:
成员变量 特征
成员方法 功能

类的组成:
成员变量 类中方法外的变量
成员方法 没有static修饰的方法


需求:
用Java语言体现学生类。


分析:
A:得到学生事物
B:把学生事物转换为学生类
C:用代码体现学生类


实现:
A:得到学生事物
属性:
行为:
B:把学生事物转换为学生类
成员变量:
成员方法:
C:用代码体现学生类
学生类:

成员变量:

成员方法:

2
练习:
模仿学生类,写出手机类。
1.得到手机类事物
属性:颜色,品牌,价格
行为:发短信,聊微信,打电话
2.事物转换成手机类
成员变量:String color,String brand,int price
成员方法:sendMessage(),weiChat(),call()
3.用java代码实现
类:

成员变量:

成员方法:

六:
类的使用(重要:new关键字的含义)
.1 一个文件一个类
类的使用(拿学生类过来练习,并画内存图进行讲解)
使用一个类,其实是使用该类的成员。(变量和方法)


我们要想想用一个类的成员,就必须创建该类的对象。
如何创建类的对象呢?
格式:
类名 对象名 = new 类名();
就表示创建了该类类型的一个对象。

如何使用成员呢?
成员变量:
对象名.变量;
成员方法:
对象名.方法名(...);

七:成员变量和局部变量的区别?
A:在类中的位置不同
成员变量 类中方法外
局部变量 方法内或者方法声明上
B:在内存中的位置不同
成员变量 堆内存
局部变量 栈内存
C:生命周期不同
成员变量 随着对象的存在而存在,随着对象的消失而消失
局部变量 随着方法的调用而存在,随着方法的调用完毕而消失
D:初始化值
成员变量 有默认初始化值
局部变量 没有默认初始化值

八:形式参数问题
数据类型:
基本类型:4类8种。byte,short,int,long,float,double,char,boolean
基本类型实际参数传递的时候传递的是这个基本类型的具体的值
引用类型:类,接口,数组
引用类型进行参数传递的时候,传递的是该引用类型的(实例对象)说白了就是这个对象的地址值

九: 匿名对象:就是没有名字的对象
是对象一种简写形式。

应用场景:
A:调用方法(对象调用方法仅仅一次的时候)
B:作为实际参数传递



猜你喜欢

转载自blog.csdn.net/Jacson_Wangx/article/details/59160124