static、final、包、访问修饰符、内部类

代码块的加载顺序

  静态代码块>成员代码块>构造方法(1,加载类2,创建对象3,调用方法)
static静态修饰符

  可以修饰成员变量 成员方法
static特点

  被static修饰的成员 属于类 不单属于某个对象 是所有对象所共享
静态的访问特点

  类名直接访问
    类名.属性名
    类名.方法名(参数)
static的注意事项
    静态的内容随着类的加载而加载 优先于对象存在
    静态的内容只能访问静态的内容 不能使用this/super
final最终修饰符
    类 :被final修饰的类不能被继承
    成员方法: 被final修饰的方法 不能被重写
    变量: 是常量 只能赋值一次  不能被二次赋值
final关键字注意事项
    1.final修饰引用类型变量 地址值不能修改 但是属性值可以修改
    2.final修饰成员变量 不能使用默认值,必须在创建对象前赋值。

        第一种 在定义常量时就显式赋值
        第二种 在构造方法中赋值 每一个构造方法都需要为其赋值(随着类的存在而存在)
    3.常量的命名规则 所有字母都大写 多个单词用_连接
        final String HELLO_WORLD = "";

代码块
    基本定义:{}
几种代码块的执行先后顺序
    局部代码块:限定变量的作用域范围
    成员代码块:创建对象时执行 创建一次对象就会执行一次
    静态代码块:静态内容随着类的加载而加载,类只要加载静态代码块就会执行 仅执行一次

类什么时候会加载?

    创建对象 访问静态成员 创建子类对象 类都会加载

基本格式:
    1.定义一个类 实现接口
    2.重写方法
    3.创建对象

匿名内部类 作用:就是临时创建一个类的子类对象的快捷方式(说白了就是创建临时子类)
    格式:
      new 父类/接口(){
              重写方法
             };
包:

  就是操作系统的文件夹 用来区分文件
    包的声明
     package xxx.xxx.xxx 定义class文件的位置 必须写在有效代码的第一行
    包的访问(默认public修饰)
      1.类全名访问
        同一个包下不需要使用类全名访问
        java.lang包下的类不需要使用类全名访问
      2.导包访问
        如果在一个类中 使用不同包下相同类名的类 只有一个包下的类可以导包 另一个全名访问即可
        eg:
          1.import java.until.Scanner
            Scanner sc=new Scanner(System.in);
          2.
           java.until.Scanner sc=new java.util.Scanner(java.langue.Ststem.in);

    访问权限
        在同一个类中 四种访问权限 都可以访问 (public protected default priavte)
        同一个包下的子类中 只有private不能访问 (public prrotcted default )
        同一个包下的无关类 只有private 不能访问 (public prrotcted default )
        不同包下的子类 public 和 protected 可以访问 (public prrotcted )
        不同包下的无关类 只有public 可以访问 (public )

           public protected 空的(default) private
        同一类中 √   √     √       √
 同一包中(子类与无关类)  √   √      √  
      不同包的子类 √   √    
    不同包中的无关类 √

修饰符总结
    权限
      public 默认 修饰 类 方法 成员变量
      protected private 方法 成员变量
      final 类 方法 变量
      static 成员方法 成员变量
      abstract 类 方法

      final和abstract能不能一起使用?不能
      static和abstract能不能一起使用? 不能

原文地址:https://www.cnblogs.com/JunQiang-Ma/p/9958919.html

时间: 2024-10-13 11:46:18

static、final、包、访问修饰符、内部类的相关文章

Java——面向对象进阶(final关键字,static关键字,匿名对象,内部类,包的声明与访问,四种访问修饰符,代码块)

一.final关键字 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后,就可以对其中的方法进行重写,那怎么解决呢? 要解决上述的这些问题,需要使用到一个关键字final,final的意思为最终,不可变.final是个修饰符,它可以用来修饰类,类的成员,以及局部变量. 1.修饰类 被final修饰的类不可以被继承,但是可以继承其他类. class Yy {} final cl

5、static、final、匿名对象、内部类、包、修饰符、代码块

final关键字 final关键字概念 * A: 概述 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承, 或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后, 就可以对其中的方法进行重写,那怎么解决呢? 要解决上述的这些问题,需要使用到一个关键字final,final的意思为最终,不可变. final是个修饰符,它可以用来修饰类,类的成员,以及局部变量. final修饰类义 * A: final 修饰类 final修饰类不

JAVA笔记8__内部类/链表的实现/包装类、享元设计模式/包、访问修饰符

/** * 内部类:在一个类的内部中定义的类 * 1. class Outer{ * class Inner{} * } * 2. class Outer{ //方法内部类 * public void doSomething(){ * class Inner(){} * } * } * 2*:1.方法内部类只能在定义该内部类的方法中实例化 * 2.方法内部类对象不能使用该内部类所在方法的非final局部变量 * (原因:局部变量随着方法调用的结束而消失,而new出来的内部类对象的作用域是可以在方

黑马程序员_包、访问修饰符以及内部类

------- <a href="http://www.itheima.com" target="blank">android培训</a>.<a href="http://www.itheima.com" target="blank">java培训</a>.期待与您交流! ---------- 一.包:  1.定义包使用关键字:package: 1).注意事项: A.packag

匿名对象,内部类,包的声明与访问,访问修饰符,代码块,java的API equals toString方法整理

匿名对象  匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. public class Person{ public void eat(){ System.out.println(); } }创建一个普通对象person p=new person();创建一个匿名对象new person(); 匿名对象的特点: 1创建匿名对象直接使用,没有变量名. new Person().eat() //eat方法被一个没有名字的Person对象调用了. 2,匿名对象在没有指定其

匿名对象 内部类 包的声明与访问 访问修饰符

匿名对象       没有变量名,只能使用一次对象,可以作为方法接收的参数.方法返回值使用 内部类 分为成员内部类与局部内部类 匿名内部类     匿名内部类是创建某个类型子类对象的快捷方式 使用匿名对象的方式,将定义子类与创建子类对象两个步骤由一个格式一次完成,.虽然是两个步骤,但是两个步骤是连在一起完成的 package com.orcle.demo03; //外部类 public class Out { //外部类方法 public void outt(){ System.out.prin

public等访问修饰符和final,static的用法

一.访问修饰符 1.public:表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用. 3.protected:对于子女.朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private. 对比Table: 作用域 当前类 同一package 子孙类 其他package

java的访问控制(包、访问修饰符、修饰符)

一.     java的类包 编写好一个源程序后,首先要执行javac命令进行编译源文件,并生成与源文件同名后缀为“.class”的字节码文件(类文件),该类文件与源文件默认在同一个目录中.该类文件是由用户创建的,而在java编程环境中,java本身提供了大量的类文件,在编程时可以直接引入使用,极大方便了程序的编写. 包的定义:是Java编程的基础,包蕴涵于标准类的体系结构和用户自己的程序中,包是有唯一命名的类的集合.在java中,包分为用户包和系统包. 一)用户包:即由用户在项目中创建的包.

内部类、代码块及访问修饰符权限

内部类 将一个类定义在另一个给类里面或者方法里面,这样的类就被称为内部类. 内部类可以分为四种:成员内部类.局部内部类.匿名内部类. 成员内部类 1 class C{ 2 class D{ 3 4 } 5 } 注: 员内部类可以无条件访问外部类的属性和方法,但是外部类想要访问内部类属性或方法时,必须要创建一个内部类对象,然后通过该对象访问内部类的属性或方法 访问方式 外部类名.内部类名 变量名 = new 外部类名().new 内部类名(); 局部内部类 局部内部类存在于方法中. 他和成员内部类

访问修饰符与可选修饰符static的使用

在Java中修饰符较多,在这里简单说一说几个访问修饰符的选择使用,和可选修饰符static的使用. 一.访问修饰符:这是Java里用来控制访问类及类的方法.变量的访问权限,从而达到只暴露接口,来隐藏内部实现的细节,访问控制符分4种级别(仅仅适用于类及类的成员修饰  private.默认.protected.public),接下来用一个表的形式简要介绍它们的选用:      本 类 同 包 不同包 子 类 非 子 类 子 类 非 子 类 private √ × × × × 默认 √ √ √ × ×