一、修饰符

Java中四种访问权限修饰符:

  • private
  • 缺省(default)
  • protected
  • public
  1. 修饰类的成员,用来限定对象对该类成员的访问权限。

    修饰符 类内部 同一个包 不同包的子类 同一个工程
    private yes
    缺省(default) yes yes
    protected yes yes yes
    public yes yes yes yes
  2. 修饰类

    对于class的权限修饰符,只可以用public和default(缺省)。

    • publice类可以在任意地方被访问
    • default类只可以被同一个包内部的类访问

二、关键字

Java中的关键字有很多,如:

  1. 定义数据类型的关键字:

    • byte、short、int、long、float、double、char、boolean
    • class、interface、enum
  2. 用于定义流程控制的关键字
    • if、else、switch、case、default、while、do、for
    • break、continue、return
  3. 用于定义访问权限修饰符的关键字 【我更愿意把它归纳为修饰符,但这并不影响,看个人习惯】
    • private、protected、public

今天主要讲的是OOP里面的关键字:

  1. this关键字

    1. 在Java中,this关键字比较难理解,它的作用和其词义很相近。

      • 它在方法内部使用,即这个方法所属对象的引用
      • 它在构造器内部使用,表示该构造函数正在初始化的对象。
    2. this可以调用类的属性、方法和构造器。

    3. 什么时候使用this关键字呢?

      • 当方法内需要用到调用该方法的对象时,就用this。具体的:我们可以用this来区分属性和局部变量。比如:

        this.name=name;
  2. super关键字

    1. 在Java类中使用super来调用父类中的指定操作:

      • super可用于访问父类中定义的属性
      • super可用于访问父类中定义的成员方法
      • super可用于在子类构造器中调用父类的构造器
    2. 注意:
      • 尤其是父类中出现同名成员时,可以用super表明调用的是父类中的成员
      • super的追溯不仅限于直接父类
      • super和this的用法很相像,this代表本类对象的引用,super代表父类的内存空间的标识
  3. this关键字和super关键字区别

    序号 区别点 this super
    1 访问属性 访问本类中的属性,如果本类没有此属性则从父类中继续查找 直接访问父类中的属性
    2 调用方法 访问本类中的方法,如果本类没有此方法则从父类中继续查找 直接访问父类中的方法
    3 调用构造器 调用本类构造器,必须放在构造器的首行 调用父类构造器,必须放在子类构造器的首行


  1. static关键字

    1. 我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间中只有一份。

    2. 成员变量可分为:

      • 实例变量
      • 类变量
    3. 补充说明:

      如果创建了一个类的多个对象,对于类中定义的非static属性,每个对象都拥有各自的一套副本,且互不干扰

    4. 如果想让一个类的所有实例共享数据,就用类变量。

    5. 使用范围:

      在Java类中,可用static修饰

      • 属性
      • 方法
      • 代码块
      • 内部类
    6. static修饰属性:类变量或者静态变量

      被修饰后的成员具备以下特点:

      • 随着类的加载而加载。可以通过“类.静态变量”的方式进行调用

      • 优先于对象存在

      • 修饰的成员,被所有对象所共享

      • 访问权限允许时,可不创建对象,直接被类调用

      • 由于类只会加载一次,则类变量在内存中也只会存在一份,存在方法区的静态域中。

      • 开发中,如何确定一个属性是否要声明为static的?

        答:属性是可以被多个对象所共享的,不会随着对象的不同而不同的。

    7. static修饰方法:静态方法或静态方法

      • 随着类的加载而加载。可以通过“类.静态方法”的方式进行调用

      • 静态方法中,只能调用静态的方法或属性。非静态方法中,既可以调用非静态方法或属性,也可以调用静态的方法或属性。

      • 在静态方法内,不能使用this、super关键字。

      • 开发中,如何确定一个方法是否要声明为static的?

        答:

         	1. 操作静态属性的方法,通常设置为static的
        2. 工具类中的方法,习惯上声明为static的。比如:Math、Arrays等
  2. final关键字

  1. 使用范围

    • 变量
    • 方法
  2. 使用关键字final来修饰表示“最终的”

  3. final修饰类

    1. final修饰的类不能被继承。提高安全性、提高程序的可读性。

      如:String类、System类、StringBuffer类

  4. final修饰方法:

    1. final修饰的方法不能被子类重写。

      如:Object类中的getClass()

  5. final修饰变量(成员变量或局部变量)即称为常量。

    1. 名称大写,且只能被赋值一次
    2. final标记的成员变量必须在声明时或在每个构造器中或代码块中显示赋值,然后才能使用。

java oop 修饰符&关键字的更多相关文章

  1. Java的修饰符

    转自:http://blog.csdn.net/manyizilin/article/details/51926230#L42 修饰符: 像其他语言一样,Java可以使用修饰符来修饰类中方法和属性.主 ...

  2. Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...

  3. 《Java基础知识》Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...

  4. Java:修饰符小记

    Java:修饰符小记 对 Java 中的 修饰符,做一个微不足道的小小小小记 Java 语言提供了很多修饰符,大概分为两类: 访问权限修饰符 非访问权限修饰符 访问权限修饰符 修饰符 说明 publi ...

  5. java访问修饰符

    了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变 ...

  6. JAVA类型修饰符(public,protected,private,friendly)

    JAVA类型修饰符(public,protected,private,friendly) public的类.类属变量及方法.包内及包外的不论什么类均能够訪问:protected的类.类属变量及方法,包 ...

  7. Java类修饰符的使用与作用以及常见问题

    首先明确,类是放在文件里的,在文件里面的不同位置就有不同的作用,就是不同类型的类. 1, 顶级类or外部类:包括两种,一个文件中与文件名同名称的类我们称作顶级类(也是外部类),如果在一个文件中的一个类 ...

  8. C#和JAVA 访问修饰符

    JAVA ----------------------------------------------- 访问修饰符        描述 ------------------------------- ...

  9. Java static修饰符

    Java static修饰符 static修饰符是静态修饰符,大家写Java第一次接触static就是主函数中的pubic static void main的声明了. 那么static有什么用?本文来 ...

随机推荐

  1. do...while循环语句(水仙花)

    #define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h&g ...

  2. Eclipse的Servers中无法添加Tomcat6/7

    2017年03月06日 17:14:46 阅读数:1007 Eclipse中在添加tomcat时发现6和7点击后发现ServerName是灰色的不能使用,也点不了NEXT,在各种查百度后发现需要删除w ...

  3. Maven工程 install和run包配置

    1.New一个Environment变量: Name:global.config.path Value:D:\490993\config;

  4. Android Studio gridview 控件使用自定义Adapter, 九宫格items自适应全屏显示

    先看效果图,类似于支付宝首页的效果.由于九宫格显示的帖子网上已经很多,但是像这样九宫格全屏显示的例子还不是太多.本实例的需求是九宫格全屏显示,每个子view的高度是根据全屏高度三等分之后自适应高度,每 ...

  5. Docker 的前世今生

    虚拟化 「要解释清楚 Docker,首先要解释清楚容器(Container)的概念」.要解释容器的话,就需要从操作系统说起.操作系统太底层,细说的话一两本书都说不清楚.这里就一句话来总结一下:操作系统 ...

  6. github Repository not found 解决办法

    git pull的时候遇到下面的报错. remote: Repository not found fatal: repository 'https://github.com/MyRepo/projec ...

  7. kernel 通知链

    原文链接: 深入理解linux网络技术内幕读书笔记(四)--通知链 概述 [注意] 通知链只在内核子系统之间使用. 大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣.为了 ...

  8. html的鼠标双击,单击,移上,离开,事件捕捉,JavaScript

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 必看!2020最新黑马JAVA 学习路线

    https://www.fang1688.cn/2020/08/24/%e5%bf%85%e7%9c%8b%ef%bc%81java-%e5%ad%a6%e4%b9%a0%e8%b7%af%e7%ba ...

  10. MPI小例子

    MPI示例 MPI时间函数测试 #include<stdio.h> #include<mpi.h> #include<stdlib.h> #include<t ...