文章目录
类(Class)的构成:
- 属性:对应类中的成员变量。
- 行为:对应类中的成员方法。
声明格式:
java
[访问权限修饰符] Class 类名 {
}
说明:
- 访问权限修饰符(可选):private、public、default(缺省)、protected等。
示例:
java
Class Demo {
//成员变量
int size = 3;
//成员方法
public static void test() {
//方法体
//局部变量
int price = 5;
}
}
没有访问权限修饰符,默认是default,可以省略不写。
成员变量
在方法外,类内声明的变量称为成员变量。
声明格式:
java
[访问权限修饰符] [其他修饰符] 变量类型 变量名;
说明:
- 访问权限修饰符(可选):private、public、default(默认)、protected等。
- 其他修饰符(可选):static、final等。
- 变量类型:基本类型和引用类型。
- 变量名:见名知意(命名规范参考)。
成员变量:有默认值,可以不需要初始化值。
static修饰:
- 实例变量:不以static修饰。
- 类变量:以static修饰。
注意:是否static修饰的区别在于加载进内存的顺序不一样,后面会单独说,暂时了解一下。
成员变量和局部变量的区别:
区别 | 成员变量 | 局部变量 |
---|---|---|
声明位置 | 直接声明在类中 | 方法形参或内部、代码块内、构造器内等 |
修饰符 | private、public、缺省(default)、protected、static、final等 | 不能用权限修饰符,可以用final修饰 |
初始化值 | 有默认初始化值 | 没有默认初始化值,必须显示赋值 |
内存加载位置 | 堆空间或静态域内 | 栈空间 |
示例:
java
public final int maxSize = 10; //常量maxSize
成员方法
方法是类或对象行为特征的抽象,用来完成某个功能操作,在某些语音中也称为函数或过程。
声明格式:
java
[访问权限修饰符] [其他修饰符] 返回值类型 方法名(形参列表) {
//方法体;
}
说明:
- 访问权限修饰符(可选):private、public、default(默认)、protected等。
- 其他修饰符(可选):static、final等。
- 返回值类型:void、基本类型和引用类型(非void返回值必须要return返回值)。
- 方法名:见名知意(命名规范参考)。
- 形成列表(可选):可有可无,若有调用时必须传入相应类型的形参。
将功能封装为方法的目的是可以实现代码的重用,简化代码。
注意:
- Java中方法不能独立存在,所有的方法必须定义在类(接口)里,方法中不可以定义方法。
- 方法被调用一次,就会执行一次,没有具体返回值的情况,返回值类型用关键字void表示,那么方法中可以不必须return语句,如果使用,仅用来结束方法。
- 方法的使用中,可以调用当前类的属性或方法(方法A中又调用了方法A,这种被称为递归调用)
示例:
java
//公共静态无返回值且无参数的test方法
public static void test() {
//方法体
}
return关键字
使用范围:方法体中。
作用:结束方法或返回指定类型的返回值。
注意:return关键字后面不可以有其他执行语句(因为方法结束,return后面的语句永远不会执行)。
示例:
java
//当形参数值大于10时,结束方法
public void test(int param) {
if(param > 10) {
return;
}
System.out.println("DemoTest.test");
}
可变长参数
JavaSE 5.0中提供了Varargs(variable number of arguments)机制,允许直接定义能和多个实参相匹配的形参。
声明格式:
java
[访问权限修饰符] [其他修饰符] 返回值类型 方法名(形参列表,参数类型... 参数名) {
//方法体;
}
说明:
- 可变长参数方法参数的个数可以是多个和0个。
- 方法中的参数有可变参数,需要放在形参声明的最后(否则编译失败)。
- 同一方法中,形参最多只能声明一个可变长参数。
- 可变长参数方法和同名方法之间彼此构成重载。
JDK5.0前后比较:
java
//JDK5.0 以前采用数组形参来定义方法,插入多个同一类型的变量
public static void test(int a, String[] books);
//JDK5.0 采用可变个数形参来定义方法,传入多个同一类型变量
public static void test(int a, String... books);
访问权限修饰符
修饰符 | 本类 | 同包 | 子类 | 所有包 |
---|---|---|---|---|
default | Y | Y | N | N |
public | Y | Y | Y | Y |
private | Y | N | N | N |
protected | Y | Y | Y | N |
说明:
- default:没有显示使用任何访问修饰符时,默认是default修饰(隐式),所有类、方法和属性都只能在同一包下的类可见。
- public:被public修饰的类、方法和属性,所有包中的类都可以访问。
- private:被private修饰的方法、属性和构造函数,只能同一类下访问(封装概念)。
- protected:被protected修饰的方法、属性和构造函数,是受保护的,可以同一包下或其类的所有子类(即使非同包下的子类)可以访问。