Java学习笔记:04面向对象-内部类_访问修饰符_final
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的更多相关文章
- Java学习笔记:03面向对象-接口_多态
1.类的概念 一堆具有共同的成员变量(属性)和成员方法(功能)对象的集合 2.接口的概念 接口是功能的集合,就是方法的集合 接口中只能定义方法,不能定义普通的成员变量 而且接口中的成员方法,必须是抽象 ...
- Java学习笔记(4)----Public,Protected,Package,Private修饰符可见性
Java修饰符类型(public,protected,private,friendly) public的类.类属变量及方法,包内及包外的任何类均可以访问:protected的类.类属变量及方法,包内的 ...
- java学习笔记12(final ,static修饰符)
final: 意思是最终的,是一个修饰符,有时候一个功能类被开发好了,不想被子类重写就用final定义, 用final修饰的最终数据成员:如果一个类的数据成员用final修饰符修饰,则这个数据成员就被 ...
- Java学习笔记之---面向对象
Java学习笔记之---面向对象 (一)封装 (1)封装的优点 良好的封装能够减少耦合. 类内部的结构可以自由修改. 可以对成员变量进行更精确的控制. 隐藏信息,实现细节. (2)实现封装的步骤 1. ...
- Java学习笔记 04 类和对象
一.类和对象的概念 类 >>具有相同属性和行为的一类实体 对象 >>实物存在的实体.通常会将对象划分为两个部分,即静态部分和动态部分.静态部分指的是不能动的部分,被称为属性,任 ...
- Java学习笔记之面向对象
面向对象概念 面向对象编程 &面向过程编程 面向对象:关心是谁来做 面向过程:关心的是怎么做 面向对象总结成一句话:就是分工与协作,干活的是对象 生活中: 对象 -----抽象-------- ...
- 【原】Java学习笔记017 - 面向对象
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 继承关系中的pri ...
- 面向对象_访问修饰符_构造与析构函数_this指针
1:面向对象 以codeblocks举例,在一个工程里面: File-->new -->Class可以建一个类,可以设置类的参数,是否有set get方法,有无构造函数等设置,.h文件主要 ...
- Java面向对象入门(2)-访问修饰符
Java访问修饰符–public, protected, private and default Java提供了四个访问修饰符来设置类,变量,方法和构造函数的访问级别,即public,private, ...
随机推荐
- docker简介及安装(1)
Docker简介 软件开发中最为麻烦的事情可能就是配置环境了.由于用户使用的操作系统具有多样性,即便使用跨平台的开发语言(如Java和Python)都不能保证代码能够在各种平台下都可以正常的运转,而且 ...
- 出现Table ‘./mysql/proc’ is marked as crashed and should be repaired
一般这种表崩溃的问题出现在mysql异常停止,或者使用kill -9命令强行杀掉进程导致,进入MySQL命令行后,执行下面的命令即可修复'./mysql/proc'表 repair table mys ...
- Redis常用数据类型以及操作
Redis常用数据类型以及操作 目录 Redis常用数据类型以及操作 一.String数据类型 1. SET/GET/APPEND/STRLEN 2. INCR/DECR/INCRBY/DECRBY ...
- DHCP原理与LINUX下的配置
DHCP原理与LINUX下的配置 目录 DHCP原理与LINUX下的配置 一.DHCP工作原理 1.DHCP概述 2.DHCP的优势 3.DHCP的分配方式 (1)自动分配 (2)手动分配 (3)动态 ...
- 【Gym101137K】Knights of the Old Republic(生成树 DP)
题目链接 大意 给定\(N\)个点\(M\)条边的一张图,其中: 每个点有两个属性\(A_i,B_i\),表示你需要至少\(A_i\)个士兵来攻占该点,而空投一个士兵至该点需要Bi的花费. 每条边都有 ...
- 实现基于MYSQL验证的vsftpd虚拟用户访问
一.配置mysql服务器 1.1 安装mysql # yum -y install mariadb-server # systemctl enable --now mariadb.service &a ...
- 通过 call/cc 给 Ice 实现 Coroutine
前两天给 Ice 加了 call/cc, 为此还重构了一波, 实现 call/cc 还是因为看了轮子哥的大专系列( 里边说提供 continuation 语言实现 Coroutine 起来很轻松, 后 ...
- ASP.NET Core 6框架揭秘实例演示[05]:依赖注入基本编程模式
毫不夸张地说,整个ASP.NET Core就是建立在依赖注入框架之上的.ASP.NET Core应用在启动时构建管道所需的服务,以及管道处理请求使用到的服务,均来源于依赖注入容器.依赖注入容器不仅为A ...
- 为什么三层架构中业务层(service)、持久层(dao)需要使用一个接口?
为什么三层架构中业务层(service).持久层(dao)需要使用一个接口? 如果没有接口那么我们在控制层使用业务层或业务层使用持久层时,必须要学习每个方法,若哪一天后者的方法名改变了则直接影响到前面 ...
- Nginx频繁报“500 Internal Server Error”错误
服务器导致访问量激增,频繁报"500 Internal Server Error"错误.我查了一下nginx的错误日志(apt-get方式安装的nginx的错误日志在/var/lo ...