在Java中,类是封装对象的属性和行为的载体,而在Java语言中对象的属性以成员变量的形式存在,对象的方法以成员方法的形式存在。
一、成员变量
Java中对象的属性称为成员变量,通过以下示例来说明:
public class Book {
private String name; //定义String类型的成员变量
public String getName() {
int id = 0;
setName("java");
return id+this.name; //设置方法的返回值
}
private void setName(String name) {
this.name = name; //将参数值赋予类中的成员变量
}
public Book getBook() {
return this; //返回Book类
}
}
二、成员方法
在Java语言中使用成员方法对应于类对象的行为,成员方法的返回值可以是计算结果也可以是其他想要的数值和对象,返回值类型要与方法返回的值类型一致,在成员方法中可以调用其他成员方法和类成员变量。
定义成员方法的语法如下:
权限修饰符 返回值类型 方法名(参数类型 参数名){
...//方法体
return 返回值;
}
三、权限修饰符
访问包位置 | 类修饰符 | ||
private | protected | public | |
本类 | 可见 | 可见 | 可见 |
同包其他类或子类 | 不可见 | 可见 | 可见 |
其他包的类或子类 | 不可见 | 不可见 | 可见 |
注意:当声明类时不使用public、protected和private修饰符设置类的权限,则这个类预设为包存取范围,即只有一个包中的类可以调用这个类的成员变量和成员方法。
四、局部变量
局部变量是在方法被执行时创建,在方法执行结束时被消耗,局部变量在使用时必须进行赋值操作或被初始化,否则会出现编译错误。
局部变量定义方法如下:
public String food(){
int name = 'apple'; //局部变量
return name;
}
五、局部变量的有效范围
局部变量的有效范围可以称为变量的作用域,局部变量的有效范围从该变量的声明开始到该变量的结束位置。
示例如下:
public void doString(String name){
int id = 0;
for(int i=0;i<10;i++){
System.out.println(name+String.valueOf(i));
}
for(int i=0;i<3;i++){
System.out.println(i);
}
}
//但是在相互嵌套的区域中不可以这样声明,如果将局部变量id在方法体的for循环中再次定义,否则会报错
public void doString(String name){
int id = 0;
for(int i=0;i<10;i++){
System.out.println(name+String.valueOf(i));
}
for(int i=0;i<3;i++){
System.out.println(i);
int id = 7;
}
}
六、this关键字
private void setName(String name) {
this.name = name; //将参数值赋予类中的成员变量
}
在上述代码中,成员变量与setNmae()方法中的形式参数的名字相同,都是name,那么该如何在类中区分使用的是哪一个变量呢?在Java语言中规定使用this关键字来代表本类对象的引用,this关键字被隐式地用于引用对象的成员变量和方法,在上述代码中,this.name指的是Book类中的name成员变量,而this.name=name;中的第二个name指定的是形参name.