04面向对象-内部类/访问修饰符/final

1.static的介绍

static:关键字,静态的

static的作用是用来修饰类中的成员

2.访问一个类中的某一个成员变量

方法一:

_1.创建对象

_2.通过对象调用成员变量

3.如果一个类的成员变量static修饰,那么想访问这个成员

直接通过类名.成员变量名

什么时候的成员变量需要static修饰?

_如果这个成员不属于某一个对象,而是属于所有对象共有的,那么需要加上static修饰

static修饰的成员变量/成员方法的使用

1.建议直接用类名调用

_类名.静态成员变量

_类名.静态成员方法(参数)

_也可以通过对象,不建议

非静态成员变量/成员方法需要创建对象来调用


final

final:最终的,中技的 黑客–>(红客,骇客) 黑鹰基地

final可以修饰: _类,成员变量,局部变量(基本类型,引用类型),成员方法

1.final修饰类(太监类):不能被继承,但是可以被做为其他的类的子类

2.final修饰成员变量:

2.1被final修饰的成员变量,必须在创建对象之前有确定的值

2.2被final修饰的成员变量,只能赋值一次

3.final修饰成员方法(最终的方法):

不能被子类重写

4.final修饰基本类型局部变量:

被final修饰的基本类型局部变量,只能被赋值一次

5.final修饰引用类型的局部变量:

被final修饰的引用类型局部变量只能赋值一次

但是引用类型所指向的对象中内容是可以改变


1.包本质是什么?

包的本质就是文件夹,在包名中是以.来区分上下级文件夹关系

2.为什么要用包?

分类管理文件

3.包的声明:

格式:package 包名

作用:只是 某个类 在哪个包下

包的声明必须与类实际位置保持一致

4.包的导入

用来告诉编译器,我们要使用的类在哪一个包下

5.全限定类型

格式:包名.类名

比如package Exercise.PackageDemo;


java中有四个权限修饰符

public:(公共)

protected:(受保护的)

default:(默认,不写就是default)

private:(私有的)

public  protected 不写(default)  private

如果一个成员只想在本类中使用  用private修饰***

如果一个成员只想在本类中和本包的其他类中使用  不写修饰

如果一个成员只想在本类中使用和本包中使用或者其他包的子类中使用   用protected修饰

如果一个成员想在所有类中都可以使用  用public修饰****


内部类:

根据内部类定义位置不同的分类:

a.成员内部类:定义类中方法外

在其他类中如何创建该类的对象

固定格式:

外部类名.内部类名 变量名 = new 外部类().new 内部类();

b.局部内部类:定义方法中

在其他类中,是无法使用

只能局部位置使用


匿名内部类:

是一种特殊语法,用来快速创建抽象类的子类对象

也可以快速创建接口的实现对象

a.作用:

快速创建 抽象类的子类对象,接口的实现类对象.

b.格式:

第一种:

new 抽象类(){

//重写抽象类中所有的方法

};

第二种

new 抽象类(){

//重写抽象类中所有的方法

}.重写后的方法();

第三种

接口类型  变量名 = new 接口(){

//重写接口中所有的方法

};

不用匿名内部类:

问题1:给你一个抽象类,要求创建该类的子类对象

分三步:1.创建子类,继承抽象方法

2.创协抽象类中的所有抽象方法

3.new 子类


类作为方法的参数或返回值

我们需要传递的或者返回的,应该该类的对象(不是该类,也不是别的类的对象)


静态代码块

代码块,在成员位置 使用大括号括起来的一堆代码

public class Person{

//静态代码块

static{

代码块

}

public void show(){ }

}

特点:

1.当我们使用到一个类时,那么这类中的静态代码块自动执行

2.只会执行一次,第一次使用该类,就立刻执行

3.在同一个类中,静态代码块的优先级很高,比构造方法优先,比main方法优先

4.作用:

用来初始化类中某些功能(mysql的数据库驱动的加载)


Java学习笔记:04面向对象-内部类_访问修饰符_final的更多相关文章

  1. Java学习笔记:03面向对象-接口_多态

    1.类的概念 一堆具有共同的成员变量(属性)和成员方法(功能)对象的集合 2.接口的概念 接口是功能的集合,就是方法的集合 接口中只能定义方法,不能定义普通的成员变量 而且接口中的成员方法,必须是抽象 ...

  2. Java学习笔记(4)----Public,Protected,Package,Private修饰符可见性

    Java修饰符类型(public,protected,private,friendly) public的类.类属变量及方法,包内及包外的任何类均可以访问:protected的类.类属变量及方法,包内的 ...

  3. java学习笔记12(final ,static修饰符)

    final: 意思是最终的,是一个修饰符,有时候一个功能类被开发好了,不想被子类重写就用final定义, 用final修饰的最终数据成员:如果一个类的数据成员用final修饰符修饰,则这个数据成员就被 ...

  4. Java学习笔记之---面向对象

    Java学习笔记之---面向对象 (一)封装 (1)封装的优点 良好的封装能够减少耦合. 类内部的结构可以自由修改. 可以对成员变量进行更精确的控制. 隐藏信息,实现细节. (2)实现封装的步骤 1. ...

  5. Java学习笔记 04 类和对象

    一.类和对象的概念 类 >>具有相同属性和行为的一类实体 对象 >>实物存在的实体.通常会将对象划分为两个部分,即静态部分和动态部分.静态部分指的是不能动的部分,被称为属性,任 ...

  6. Java学习笔记之面向对象

    面向对象概念 面向对象编程 &面向过程编程 面向对象:关心是谁来做 面向过程:关心的是怎么做 面向对象总结成一句话:就是分工与协作,干活的是对象 生活中: 对象 -----抽象-------- ...

  7. 【原】Java学习笔记017 - 面向对象

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 继承关系中的pri ...

  8. 面向对象_访问修饰符_构造与析构函数_this指针

    1:面向对象 以codeblocks举例,在一个工程里面: File-->new -->Class可以建一个类,可以设置类的参数,是否有set get方法,有无构造函数等设置,.h文件主要 ...

  9. Java面向对象入门(2)-访问修饰符

    Java访问修饰符–public, protected, private and default Java提供了四个访问修饰符来设置类,变量,方法和构造函数的访问级别,即public,private, ...

随机推荐

  1. Linux shell脚本之 if条件判断 (转)

    IF条件判断 1.基本语法: if [ command ]; then 符合该条件执行的语句 fi 2.扩展语法: if [ command ];then 符合该条件执行的语句 elif [ comm ...

  2. CSS控制图片大小

    转载请注明来源:https://www.cnblogs.com/hookjc/ 1.CSS控制背景图片:    对于一个网页,我们开始设计的时候,可能没有过多的去想背景图到底是什么,因为大多都是设计背 ...

  3. 编写PHP扩展

    转载请注明来源:https://www.cnblogs.com/hookjc/ PHP 5.2 环境的扩展(PHP Extension) 需求:比如开发一个叫做 heiyeluren  的扩展,扩展里 ...

  4. python——三方电子邮件库pyzmail

    pyzmail比默认smtplib和mime模块简单很多. 模块首页 http://pyzmail.readthedocs.io/en/latest/ python3.2以上,pip install ...

  5. 抽象类,interface接口,接口和继承的区别

    一.抽象类 需要抽象类的原因:父类方法不确定性的问题.考虑将该方法设计为抽象(abstract)方法所谓抽象方法就是没有实现的方法.所谓没有实现就是指,没有方法体.当一个类中存在抽象方法时,需要将该类 ...

  6. node 解决存储xss风险报告

    1. 安装 xss模块 npm install xss 2.在 Node.js 中使用 const xss = require("xss"); // 在项目的接口里面添加 let ...

  7. Redis和数据库的数据一致性问题

    在数据读多写少的情况下作为缓存来使用,恐怕是Redis使用最普遍的场景了.当使用Redis作为缓存的时候,一般流程是这样的. 如果缓存在Redis中存在,即缓存命中,则直接返回数据 如果Redis中没 ...

  8. python数据分析之numpy、matplotlib的使用

    5.3 Python的科学计算包 - Numpy numpy(Numerical Python extensions)是一个第三方的Python包,用于科学计算.这个库的前身是1995年就开始开发的一 ...

  9. 5、架构--Nginx、搭建超级玛丽游戏

    笔记 1.晨考 1.NFS共享文件步骤 - 服务端 [root@backup ~]# yum install nfs-utils rpcbind -y [root@backup ~]# mkdir / ...

  10. kube-scheduler源码分析(1)-初始化与启动分析

    kube-scheduler源码分析(1)-初始化与启动分析 kube-scheduler简介 kube-scheduler组件是kubernetes中的核心组件之一,主要负责pod资源对象的调度工作 ...