Java学习历程之----进阶篇(四)

        我这个人走得很慢,但是我从不后退。

----亚伯拉罕·林肯

前言:

      本周我们主要了解Java中与面向对象的程序设计(OOP)有关的关键字。后面会逐一详细说明各个关键字的用法。其中特别注意的是this关键字,是Java中最常用的关键字,this 关键字可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用。

      一、this 关键字

      下面我们根据具体示例来分别讲解this关键字的作用。

1.1、this.属性名

       当一个类的属性(成员变量)名与访问该属性的方法参数名相同时,则需要使用 this 关键字来访问类中的属性,以区分类的属性和方法中的参数。假设有一个教师类 Teacher 的定义如下:

public class Teacher {

    //定义三个属性
    private String name;    // 教师名称
    private double salary;    // 工资
    private int age;    // 年龄

       在上述代码中 name、salary 和 age 的作用域是 private,因此在类外部无法对它们的值进行设置。为了解决这个问题,可以为 Teacher 类添加一个构造方法,然后在构造方法中传递参数进行修改。代码如下:

// 创建构造方法,为上面的3个属性赋初始值(构造方法名与类名一致)
    public Teacher(String name,double salary,int age) {
        this.name = name;    // 设置教师名称
        this.salary = salary;    // 设置教师工资
        this.age = age;    // 设置教师年龄
    }

       在 Teacher 类的构造方法中使用了 this 关键字对属性 name、salary 和 age 赋值,this 表示当前对象。this.name=name语句表示一个赋值语句,等号左边的 this.name 是指当前对象具有的变量 name,等号右边的 name 表示参数传递过来的数值。最后,对Teacher类进行测试,结果如下;

1.2、this.方法名

this 关键字最大的作用就是让类中一个方法,访问该类里的另一个方法或实例变量。

假设定义了一个 Dog 类,这个 Dog 对象的 run( ) 方法需要调用它的 jump( ) 方法,Dog 类的代码如下所示:

package second.This;
    /**
     * 第一种定义Dog类方法
     **/
    public class Dog {
        // 定义一个jump()方法
        public void jump() {
            System.out.println("正在执行jump方法");
        }


        // 定义一个run()方法,run()方法需要借助jump()方法
        public void run() {
            Dog d = new Dog();
            this.jump();//this可替换为d或省略均可
            System.out.println("正在执行 run 方法");
        }
    }

使用这种方式来定义这个 Dog 类,确实可以实现在 run( ) 方法中调用jump( ) 方法。下面再提供一个程序来创建 Dog 对象,并调用该对象的 run( ) 方法。

package second.This;
public class DogTest {
    public static void main(String[] args) {
        // 创建Dog对象
        Dog dog = new Dog();
        // 调用Dog对象的run()方法
        dog.run();
        }
    }

         在上面的程序中,一共产生了两个 Dog 对象,在 Dog 类的 run( ) 方法中,程序创建了一个 Dog 对象,并使用名为 d 的引用变量来指向该 Dog 对象。在 DogTest 的 main() 方法中,程序再次创建了一个 Dog 对象,并使用名为 dog 的引用变量来指向该 Dog 对象。运行结果如下图所示:

1.3、this()访问构造方法

       this( ) 用来访问本类的构造方法(构造方法是类的一种特殊方法,方法名称和类名相同,没有返回值。后面我们会用单独一节仔细讲解构造方法,括号中可以有参数,如果有参数就是调用指定的有参构造方法。

注意:

① this( ) 不能在普通方法中使用,只能写在构造方法中。

② 在构造方法中使用时,必须是第一条语句。

下面定义一个 Student 类,使用 this( ) 调用构造方法给 name 赋值,Student 类的代码如下所示:

package second.This;
public class Student {
    String name;
    // 无参构造方法(没有参数的构造方法)
    public Student() {
        name = "0";//也可直接赋值为具体姓名,如张三
    }
    // 有参构造方法
    public Student(String name) {
        this.name = name;
    }
    // 输出name和age
    public void print() {
        System.out.println("姓名:" + name);
    }
    public static void main(String[] args) {
        Student stu1 = new Student();//调用无参构造方法
        stu1.print();
        Student stu2 = new Student("小圈圈");//调用有参构造方法
        stu2.print();
    }
}

运行结果如下图所示:

      二、权限修饰符

二、限定访问权限的修饰符

限定访问权限的修饰符有public,private,protect,即可用来修饰类,也可用来修饰类中的成分,访问权限如下表所示:

        这三个限定符不是必须写的,不写则默认是friendly。

       三、存储修饰符

三、存储方式修饰符

       Static即可用来修饰数据成员,又可以修饰成员方法,表明说明的对象是静态的。类定义中的公有静态变量相当于全局变量。后面我们也会详细介绍static关键字。这里只做简单的了解。

       四、继承关键字

四、与继承有关的关键字

继承是面向对象语言所具有的三大特性之一,继承是指特殊类对象共享更一般类对象的状态及行为,即子类继承父类的特性。子类从父类继承的内容包括属性和方法。

4.1、 继承的含义

    1)子类除了拥有父类的属性和方法,还可以增加自己的属性和方法。

    2)子类对象可以响应父类中的方法表示的信息。

4.2、与继承有关的关键字

Java语言中,与继承有关的关键字主要有:

1)final:用final修饰类的不能再派生子类,它已达到类层次中的最底层。

2)abstract:用abstract可以修饰类或成员方法,表明被修饰的成分是抽象的。

上面提到的关键字后面我们都会再详细的讲解,今天先了解这些关键字即可。

小编有话说:

       越学到后面,小编发现自己的知识储备真的太太太少了,我现在也是和大家一起重新学习,虽然之前学习过Java,应付考试可能还说得过去,但在使用的时候就束手无策,越到后面越难懂,但核心的部分才刚刚开始呢,所以大家一定要坚持啊!

编辑:玥怡居士|审核:世外居士

往期精彩回顾

Java学习历程之---进阶篇(三)

Java学习历程之---进阶篇(二)

Java学习历程之---进阶篇(一)

IT进阶之旅

好看请点这里~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值