美文网首页
Java基础学习(七)- 面向对象(下)

Java基础学习(七)- 面向对象(下)

作者: 做个合格的大厂程序员 | 来源:发表于2020-05-19 09:16 被阅读0次

final

final是一个关键字,表示最终的意思,可以用来修饰类,变量和方法

  • 修饰类:表示该类是最终类,不能被继承
  • 修饰变量:表示该变量是常量,不能再次被赋值
  • 修饰方法:表示该方法是最终方法,不能被重写

static

static是一个关键字,可以修饰成员变量和方法

  • 被类的所有对象共享
  • 可以通过类名调用
  • 优先于对象的存在
  • 随着类的加载而加载

注意

  • 非静态的成员方法:

  • 能访问静态的成员变量

  • 能访问非静态的成员变量

  • 能访问静态成员方法

  • 能访问非静态的成员方法

  • 静态成员方法

    • 能访问静态的成员变量
    • 能访问静态成员方法
    • 不能访问非静态的成员变量
    • 不能访问非静态的成员方法

需要注意的是:

静态方法中不能出现this,super这样的关键字

原因是:静态是随着类的加载而加载,this,super这样的关键字是随着对象的创建而存在,先进内存的,不能访问后进内存的。

代码示例

public class Student {
    private String name;
    private static int age;
    
    public static void method1(){
    //不允许
//      this.method3();
    //不允许
//      System.out.println(name);
    //允许
        System.out.println(age);
    }
    
    public void method2(){
        this.method3();
        System.out.println(this.name);
        System.out.println(this.age);
    }
    
    public void method3() {}
}

抽象类

抽象类就是提供方法但是不去实现的类,例如:我们定义一个动物类,动物类中有一个吃的方法动作,但是我们并不实现吃这个动作,而是交由它的子类去实现吃这个行为,那么我们可以将这个类定义为抽象类:

public abstract class Animal {
    public abstract void eat();
}

如果一个猫类cat,继承Animal类,那么cat类就必须实现Animal类中的抽象方法。不然程序会报错。

public class Cat extends Animal{
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}

接口

接口就是用来实现特定方法的一个类。通常一个类用implements来实现一个接口

//定义一个jump的接口

public interface Jumpping {
    public void jumpping();
}

//实现接口
public class Cat implements Jumpping{

    @Override
    public void jumping() {
        System.out.println("猫跳高");
    }
}

接口的成员特点:

  • 成员变量:接口有成员变量,而且变量只能是final类型的常量
  • 构造方法:没有构造方法
  • 成员方法:有成员方法,只能是抽象方法

类与类,类与接口以及接口与接口之间的关系

概念

类与类

  • 继承关系,只能单继承,但是可以实现多层继承

类与接口

  • 实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口

接口与接口

  • 继承关系,可以单继承,也可以多继承

代码示例

//接口的继承,可以多继承
public interface Son extends Father,Mother {
    ...
}

//类的多继承接口
public class Family implements Son,Father,Mother{
    ...
}

包的作用就是对类进行分类管理

  • 按照功能分类
com.xxx.add
    AddStudent
    ADDTeacher
com.xxx.delete
    DeleteStudent
    DeleteTeacher
  • 按照模块分
com.xxx.student
    AddStudent
    DeleteStudent
com.xxx.teacher
    AddTeacher
    DeleteTeacher

权限修饰符

  • private : 只能在本类中使用
  • 默认:都可以使用
  • protected:只能在同一个包中使用
  • public:等同默认情况

相关文章

  • Java基础学习(七)- 面向对象(下)

    final final是一个关键字,表示最终的意思,可以用来修饰类,变量和方法 修饰类:表示该类是最终类,不能被继...

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • Java基础03面向对象

    Java 基础02Java编程基础 面向对象上 面向对象的概述 面向对象的概述:面向对象是一种符号人类思维习惯的编...

  • Java基础语法知识学习(一)

    Java基础语法知识学习(一) 1.简介:java是面向对象的编程语言,现在eclipse IDE开发环境下进行学...

  • 002java300集基础学习--尚学堂(28~51面向对象)

    java300集基础学习--尚学堂(28~51面向对象) 课时28:面向过程和面向对象的本质区别 本章概述 面向对...

  • spring boot+scala编写web接口

    本人是Java开发者,有面向对象的基础,而Scala也是面向对象的语言,学习后可快速入门。通过学习Scala的面向...

  • Java Web后端 - Spring Boot学习

    学习之前,请确保拥有适当Java基础(或者面向对象编程基础),并且了解HTML/Restful Api至于Java...

  • 【知识详解】JAVA基础(秋招总结)

    JAVA基础 目录 JAVA基础 问:面向过程(POP)和面向对象(OOP)? 问:Python和Java的区别?...

  • Java基础学习(六)- 面向对象(下)

    继承 概述 多个类存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

网友评论

      本文标题:Java基础学习(七)- 面向对象(下)

      本文链接:https://www.haomeiwen.com/subject/lwdvohtx.html