Java基础——类Class(成员变量和成员方法)

文章目录

类(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修饰的方法、属性和构造函数,是受保护的,可以同一包下或其类的所有子类(即使非同包下的子类)可以访问。
相关推荐
哎呦没2 分钟前
SpringBoot框架下的资产管理自动化
java·spring boot·后端
m0_571957582 小时前
Java | Leetcode Java题解之第543题二叉树的直径
java·leetcode·题解
一点媛艺3 小时前
Kotlin函数由易到难
开发语言·python·kotlin
姑苏风3 小时前
《Kotlin实战》-附录
android·开发语言·kotlin
奋斗的小花生4 小时前
c++ 多态性
开发语言·c++
魔道不误砍柴功4 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_2344 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨4 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
老猿讲编程5 小时前
一个例子来说明Ada语言的实时性支持
开发语言·ada
Chrikk6 小时前
Go-性能调优实战案例
开发语言·后端·golang