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

static 关键字可以修饰成员变量,被static修饰的成员变量归属于类
static关键字可以修饰成员方法;被static修饰的成员方法可以直接使用类名调用,也可以通过对象调用,建议使用类名。
非静态的方法只能通过对象才能调用
静态的方法可以通过类名直接调用,也可以通过创建对象,使用对象名进行调用。
静态方法中不能使用非静态的成员变量
在非静态的方法中可以使用静态的成员变量
静态的内容要优先与对象存在,当类加载的时候,会随着类的加载而存在于静态区中。

局部代码块分为局部代码块和构造代码块
局部代码块:在方法内的代码块成为局部代码块;方法调用时候执行
构造代码块:在类的成员变量位置的代码块成为构造代码块;创建对象时候,在构造方法的第一行和第二行之间执行
静态代码块:使用static关键字修饰的构造代码块就是静态代码块。
静态代码块与静态成员变量显示赋值时,谁在下面谁生效。也就是说按位置执行。

Final关键字
被final修饰的内容,将一直固定不变,不可修改。
final可以修饰类,final修饰的类,将不能修饰类,但是可以继承其他非final修饰的类
final可以修饰成员变量,
根据被修饰的变量得数据类型分为两种情况:
1:修饰基本数据类型:表示成员变量得值不可改变,成为了一个常量
2:修饰引用数据类型:表示成员变量得地址值不能改变,但是改变其属性值
3:final可以修饰方法,被修饰的方法不可以被重写;(子类可以继承也可以使用)

权限修饰符
修饰类的时候只能使用两种权限
public 空的,建议使用public
修饰成员变量时,4中权限都可以使用,建议使用private
修饰成员方法时,4中权限都可以使用,建议使用public
修饰构造方法时,4中权限都可以使用,建议使用public
注意事项:abstract关键字不能与static、final和private同时出现
内部类
内部类一般用于描述的事物具有包含对应的关系时。
内部类目的就是不让外界使用
根据B类在A类中的位置不同,可以分为局部内部类和成员内部类。
局部内部类: 在A类的方法中定义的类,称为局部内部类。
成员内部类:在A类成员变量位置定义的类称为成员内部类
创建对象的格式:
外部类.内部类 对象名 = new 外部类().new内部类();
匿名内部类:
当内部类定义的时候,没有给类起名字,那么这个类就必须定义在的时候指定一个父类,且立刻需要创建出来这个没名字的类的对象
特殊的格式:
父类 对象名 = new 父类(){};
格式中的大括号就是一个类,类没名字,但是有父类,父类就是其上面的那个父类;
对象名保存的是没有名子的类的对象;
这个对象名是多态形式的对象;
只要不是final修饰的类,都可以作为父类;(包括接口和抽象类)
局部内部类不能加权限修饰符

时间: 2024-10-21 09:01:04

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 √ × × × × 默认 √ √ √ × ×