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·后端
程序漫游人16 分钟前
centos8.5安装jdk21详细安装教程
java·linux
xiaolang_8616_wjl31 分钟前
c++文字游戏_闯关打怪
开发语言·数据结构·c++·算法·c++20
WJ.Polar37 分钟前
Python数据容器-list和tuple
开发语言·python
FrostedLotus·霜莲1 小时前
C++主流编辑器特点比较
开发语言·c++·编辑器
超级码.里奥.农1 小时前
零基础 “入坑” Java--- 七、数组(二)
java·开发语言
KENYCHEN奉孝1 小时前
Rust征服字节跳动:高并发服务器实战
服务器·开发语言·rust
hqxstudying1 小时前
Java创建型模式---单例模式
java·数据结构·设计模式·代码规范
挺菜的1 小时前
【算法刷题记录(简单题)002】字符串字符匹配(java代码实现)
java·开发语言·算法
A__tao1 小时前
一键将 SQL 转为 Java 实体类,全面支持 MySQL / PostgreSQL / Oracle!
java·sql·mysql