Java基础语法3

来源:互联网 发布:java redis队列使用 编辑:程序博客网 时间:2024/05/29 03:32

方法:为了解决代码重复编写的问题,可以将代码提取出来放在一个大括号中,并为这段代码起个名字,这样在每次获取最值的地方通过这个名字来调用获取最值的代码就可以了。上述过程中,所提取出来的代码可以被看作是程序中定义的一个方法(功能),程序在需要获取最值时调用该方法即可。

方法可以简单定义为:完成特定功能的代码块

函数在Java中被称为方法。

格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
函数体;
return 返回值;
    }

修饰符:

类修饰符:

public: 任何地方都可以访问,对访问无限制。 
protected: 同一个包内或者不同包内的子类可以访问。 
private: 同一个类内可以访问。 
默认(default): 同一个包内可以访问。

public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。

abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现。

final,将一个类生命为最终(即非继承类),表示他不能被其他类继承。

friendly,默认的修饰符,只有在相同包中的对象才能使用这样的类。

成员变量修饰符:

public(公共访问控制符),指定该变量为公共的,他可以被任何对象的方法访问。

private(私有访问控制符)指定该变量只允许自己的类的方法访问,其他任何类(包括子类)中的方法均不能访问。

protected(保护访问控制符)指定该变量可以别被自己的类和子类访问。在子类中可以覆盖此变量

friendly ,在同一个包中的类可以访问,其他包中的类不能访问。

final,最终修饰符,指定此变量的值不能变表示该变量一旦赋值之后,其值将不会再发生改变

static(静态修饰符)指定变量被所有对象共享,即所有实例都可以使用该变量。变量属于这个类。

transient(过度修饰符)指定该变量是系统保留,暂无特别作用的临时性变量。

volatile(易失修饰符)指定该变量可以同时被几个线程控制和修改。

方法修饰符

public(公共控制符)

private(私有控制符)指定此方法只能有自己类等方法访问,其他的类不能访问(包括子类)

protected(保护访问控制符)指定该方法可以被它的类和子类进行访问。

final,指定该方法不能被重载

static,指定不需要实例化就可以激活的一个方法。

static,表示该变量无需获得其所属类的对象就可以访问。

synchronize,同步修饰符,在多个线程中,该修饰符用于在运行前,对他所属的方法加锁,以防止其他线程的访问,运行结束后解锁。

native,本地修饰符。指定此方法的方法体是用其他语言在程序外部编写的。


返回值类型: 用于限定返回值的数据类型
方法名 :一个名称,为了方便我们调用方法
参数类型 :限定调用方法时传入参数的数据类型
参数名: 是一个变量,接收调用方法时传入的参数
方法体: 完成功能的代码
return :结束方法以及返回方法指定类型的值 
返回值: 程序被return带回的结果,返回给调用者


如何写一个方法呢?两个明确:
返回值类型 明确功能结果的数据类型
参数列表 明确有几个参数,以及参数的类型

有明确返回值的方法调用:
单独调用,没有意义
输出调用,有意义,但是不够好,因为我不一定非要把结果输出
赋值调用,推荐方式

没有明确返回值的函数调用:
其实就是void类型方法的调用
只能单独调用

方法重载概述
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
方法重载特点
与返回值类型无关,只看方法名和参数列表
JVM在调用时通过参数列表的不同来区分同名方法


数组:

数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。

数组既可以存储基本数据类型,也可以存储引用数据类型。

数组是存储多个变量(元素)的东西(容器),这多个变量的数据类型要一致。

格式1:数据类型[] 数组名;
格式2:数据类型 数组名[];

数组初始化概述:
Java中的数组必须先初始化,然后才能使用。
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。

数组的初始化方式
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。

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

数组长度其实就是数组中元素的个数。数组为每个元素都分配了编号,从0开始。获取的时候只要数组名配合编号即可。最大编号是长度-1。编号又称索引。


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


Java 程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

栈 :存储局部变量
堆 :存储new出来的东西
方法区 ()
本地方法区: (和系统相关)
寄存器: (给CPU使用)

数组索引越界
ArrayIndexOutOfBoundsException:访问到了数组中的不存在的索引时发生。
空指针异常
NullPointerException:数组引用没有指向实体,却在操作实体中的元素时。

二维数组其实就是一个元素为一维数组的数组

格式1
数据类型[][] 变量名 = new 数据类型[m][n];
m表示这个二维数组有多少个一维数组
n表示每一个一维数组的元素个数

数据类型[][] 变量名 = new 数据类型[m][];
m表示这个二维数组有多少个一维数组
这一次没有直接给出一维数组的元素个数,可以动态的给出。

数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
简化版格式:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};

原创粉丝点击