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, ...
随机推荐
- android 安装gcc环境
看到了一篇关于Android上利用终端来使用gcc编译C/C++源程序的文章,我感到无比兴奋,所以立刻将我自己的安装过程记下来.那个后记也很有用的. gcc编译源代码需要创建临时文件,而gcc又只能安 ...
- ORM要用到的数组转对象和对象转数组函数
<?php function array2object($array) { if (is_array($array)) { $obj = new StdClass(); foreach ($ar ...
- android+json+php+mysql实现用户反馈功能
相信每个项目都会有用户反馈建议等功能,这个实现的方法很多,下面是我实现的方法,供大家交流.首先看具体界面,三个字段.名字,邮箱为选填,可以为空,建议不能为空.如有需要可以给我留言. 下面贴出布局代码, ...
- NoSQL 之Redis的5大数据类型
NoSQL 之Redis的5大数据类型 Redis的五大数据类型也称五大数据对象:了解过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使用这些结构构建了一个对象系统redisO ...
- Solution -「ARC 125F」Tree Degree Subset Sum
\(\mathcal{Description}\) Link. 给定含有 \(n\) 个结点的树,求非负整数对 \((x,y)\) 的数量,满足存在 \(\exist S\subseteq V ...
- ConcurrentHashMap (jdk1.7)源码学习
一.介绍 1.Segment(分段锁) 1.1 Segment 容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并 ...
- Hadoop分布式集群部署
环境准备 IP HOSTNAME SYSTEM 192.168.131.129 hadoop-master CentOS 7.6 192.168.131.135 hadoop-slave1 CentO ...
- MyBatis功能点一:二级缓存cache
对于Mybatis缓存分作用域等维度区别一.二级缓存特点如下图: 分析缓存源码首先得找到缓存操作的入口:前面已经分析,sqlsesion.close()仅对一级缓存有影响,而update等对一/二级缓 ...
- DNS中的SOA
起始授权机构,SOA(Start Of Authority):该记录表明DNS名称服务器是DNS域中的数据表的信息来源,该服务器是主机名字的管理者,创建新区域时,该资源记录自动创建,且是DNS数据库文 ...
- [题解]RQNOJ PID85 三个袋子
链接:http://www.rqnoj.cn/problem/85 思路:一个排列问题,递推式很简单,f(n+1)=3*f(n)-1 ,由此可以推出通项公式,f(n)=0.5*3^(n-1)+0.5 ...