java学习之路:13.类(成员变量,成员方法,权限修饰符,局部变量及有效范围,this关键字)

写在前面:
大家好,我是 花狗Fdog ,来自内蒙古的一个小城市,目前在泰州读书。
很感谢能有这样一个平台让我能够在这里分享所学所感。
我喜欢编程,喜欢代码,喜欢去做一个程序员。
努力学习,争取多年后,给亲人更好的生活。
QQ/WX:2506897252 欢迎交流。



0.先看一个代码

package number;
public class Book {

private String name;//定义一个String类型的成员变量

public String getName()//定义一个getName()方法
{  
    int id=0;          //局部变量
    setName("Java");  //调用类中其他方法
    return id+this.name;//设置方法返回值
}

private void setName(String name)//定义一个setNAme()方法
{
    this.name=name;    //将参数值赋予类中的成员变量
}

public Book getBook()
{
    return this;      //返回Book类引用
}

}

1.成员变量

类的成员变量分为类变量(又称静态变量,被static修饰的变量)和实例变量(不被static修饰的变量),此外,还有定义在函数内部的变量称为局部变量,仅在函数内部有效。
比如上述代码中:
private String name; 这就是定义一个String类型的成员变量(实例变量)。
现在先不管变量类型前面的修饰符。

2.成员方法

上述代码,包含了getName()和setName()两个成员方法,这两个成员方法分别获取图书名称和设置图示名称的方法。
定义成员方法的语法格式如下:
权限修饰符 返回值类型 方法名(参数类型 参数名 )
{
具体执行代码
return 返回值
}
如果成员方法无返回值,可用void表示。
在成员方法中可以调用其他成员方法和类成员变量,如上述代码中getName()调用了setName()方法。
需要注意的一点是如果一个方法中含有与成员变量同名的局部变量,则方法中对这个变量的访问以局部变量进行。

3.权限修饰符

java中的权限修饰符主要包括private,public,protected,,这些权限修饰符控制着对类和类的成员变量,成员方法的访问,如果一个类的成员变量或成员方法被修饰private,则该成员变量或成员方法只能在本类中被使用,在子类中式不可见的,也就是自己都有。如果一个类的成员变量或成员方法被修饰public,那么除了可以在本类中使用这些数据之外,还可以在子类和其他包的类中使用,也就是自己大公无私,一视同仁,如果一个类的访问权限被设置为private,这个类将隐藏其内的所有数据,以免用户直接访问它,如果一个类的成员变量或成员方法被修饰protected,那么只能本包内的类或者子类可以访问。相对于public,protected比较小气,但是比private大气。

访问包位置 private protected public
本类 可见 可见 可见
同包其他类或子类 不可见 可见 可见
其他包的类或子类 不可见 不可及 可见

当声明类时不使用public,private , protected 这些修饰符时,只有一个包中的类和子类可以调用这个类的成员变量以及方法。而且java语言规定,类的权限约束类成员的权限设定。比如一单类被修饰为private,但是类成员为public,但是还是无法使用类成员。
权限比较:private >protected >public

4.局部变量

上述代码中,int id=0; id被定义在函数内部,所以叫局部变量。局部变量在方法被执行时创建,在方法执行结束时被销毁。局部变量在使用时必须进行赋值操作或者被初始化,否则会出现编译错误。

5.局部变量的有效范围

局部变量的有效范围就是变量的作用域,如果在该方法开始处被定义,那么作用域就是该方法结束,如果变量在方法中的for语句中被定义,那么该变量作用域只有该for执行完毕。

6.this关键字

可以看到上述代码中的this.name=name语句,在方法setName()方法,形参名为name,成员变量为name,那么该怎么区别?在java语言中规定使用this关键字来代表本类对象的引用。this关键字被隐式地用于引用对象的成员变量和方法,,this相当于对象的衍生品,谁调用this就指谁,对象可以调用成员变量和成员方法,this关键字也可以,除此之外,this还可以作为方法的返回值。如代码最后 return this;在getBook()方法中,方法的返回值为Book类,所以方法体中使用return this这种形式将Book的对象进行放回。


若有错误,欢迎指正批评,欢迎讨论。
每文一句:别人讲我们不好,不用生气、难过。说我们好也不用高兴,这不好中有好,好中有坏,就看你会不会用?

发布了42 篇原创文章 · 获赞 72 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Fdog_/article/details/104180395