java - day008 -final ,static ,访问控制符.
面向对象
封装
类: 模板
对象: 实例
引用,遥控器
构造方法
新建对象时执行
构造方法重载
this
this.xxx
this(...)
重载
同名不同参
继承
代码复用
子类对象
继承之后是有父类对象和子类对象绑定在一起作为一个对象
创建的时候先创建父类对象,再创建子类对象
调用成员时, 先找子类,再找父类
父类构造方法
先创建父类对象,先执行父类的构造方法
默认执行无参构造方法 super();
不存在无参构造,必须手动调用父类有参构造
多态
一致的类型
所有子类对象,都可以被当做一致的父类型处理
向上转型
向下转型
运行期类型识别 instanceof
对真实类型及其父类型判断,
抽象类
抽象方法作用; 为子类提供通用的方法定义
子类必须实现父类的抽象方法
抽象类不能创建对象
final
修饰: 常量 标识值不可变
final int a = 5;
final Point a = new Point(3,4);
a.x = 30; //对的
a = new Point(5,6); // 错的
a = null; // 错的
a 的属性可以变, 但 a 不能重新赋值
修饰: 方法,标识方法不能被子类重写
修饰: 类, 标识类不能被继承
system
String
static: 静态
静态属于类,不属于对象,
一个类, 被虚拟机加载到方法区
静态变量.保存在方法区'类'的内存空间中
调用静态成员时,用类名调动
System.out
Integer.MAX_VALUE
Math.random()
使用静态变量的原则
能不用就不用
静态是非'面向对象的'语法
子类能调用父类的静态变量,但不是继承,也不能重写
使用场景
共享的数据
工具的方法
Math.random()
String.ValueOf()
Intefer.parseint()
静态代码块中, 可以直接调用静态成员, 不能直接调用非静态成员
必须新建实例对象, 用实例来调用
静态初始化块
class A{
static{
静态初始化块, 在类被加载时,只执行一次
}
}
访问控制符
限制一个类, 或类中的成员的访问范围
类, 包, 子类, 任意
public 任何位置都可以访问
protected 只能在同包下访问,可以被子类继承
[default] 只能在同包下任意访问
private 只能在同类中访问
访问原则, 尽量小范围访问
public 不能随便修改,会影响其他引用public 的方法
缩小访问范围, 更便于代码的维护和修改,
成员变量一般都设为私有,其默认是 default 同包下访问
可以使用公开的方法来控制变量的赋值及访问
如果类中的成员变量非常多, 为了同包下调用方便,
可以选择 [defaule]
如果希望子类继承这个变量, 可以选择protected(受保护的)
对象的创建过程
内存
方法区: 类, 静态变量
堆: 对象,
栈: 变量,
java - day008 -final ,static ,访问控制符.的更多相关文章
- java 关键字final static native详解
java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...
- Java中 final static super this instanceof 关键字用法
一.final关键字 final可以修饰变量.方法及类: 1.当定义一个final变量时,jvm会将其分配到常量池中,其所修饰的对象只能赋值一次,对基本类型来说是其值不可变,引用类型(包括作为函数形参 ...
- java基本数据类型,访问控制符,运算符执行顺序
1.java数据类型 内置数据类型:boolean(1), byte(8), char(16), short(8), int(32), long(64), float(32), double(64) ...
- java面向对象--包及访问控制符
多人开发同一个项目时,会出现类名称相同的情况.package就是为了避免类或接口名称重复而采用的一种措施.实际上包就是有一定层次结构的文件夹,*.class文件要保存当前类声明的和包对应的文件夹中. ...
- JAVA 构造器, extends[继承], implements[实现], Interface[接口], reflect[反射], clone[克隆], final, static, abstrac
记录一下: 构造器[构造函数]: 在java中如果用户编写类的时候没有提供构造函数,那么编译器会自动提供一个默认构造函数.它会把所有的实例字段设置为默认值:所有的数字变量初始化为0;所有的布尔变量设置 ...
- Java关键字final、static使用总结(转)
原文链接:Java关键字final, static一些要点 1. final final类不能被继承,没有子类,final类中的方法默认是final的 final方法不能被子类的方法复盖,但可以被 ...
- java入门---修饰符&访问修饰符&非访问修饰符
Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: public class ...
- Java final类&所有构造方法均为private的类(类型说明符&访问控制符)
1. final是类型说明符,表示关闭继承,即final类不能有子类: 但final类可能可以在类外创建对象(即final类的构造方法可以不是private型): 在同一包中时,可以在任何另外一个类中 ...
- Java知多少(19)访问修饰符(访问控制符)
Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: 1 public class className { 2 // body of class 3 } 4 pr ...
随机推荐
- loj121-动态图连通性
Solution 线段树分治, 然后直接在线段树上dfs, 在进入/回溯的过程中维护并查集的merge/split. 对于split操作, 可以在merge时按秩合并, 然后利用栈记录, split时 ...
- BZOJ5019[Snoi2017]遗失的答案——FWT+状压DP
题目描述 小皮球在计算出答案之后,买了一堆皮肤,他心里很开心,但是一不小心,就忘记自己买了哪些皮肤了.==|||万 幸的是,他还记得他把所有皮肤按照1-N来编号,他买来的那些皮肤的编号(他至少买了一款 ...
- iPhone 系统刷机
1. 下载好固件(爱思 或者 pp助手) e.g. http://jailbreak.25pp.com/gujian/ 2. 将电脑与手机连接上,弹出iTunes软件即可 3. 长按手机电源键 关闭手 ...
- jQuery中$.each()方法(遍历)
$.each()是对数组,json和dom结构等的遍历,说一下他的使用方法吧. 1.遍历一维数组 var arr1=['aa','bb','cc','dd']; $.each(arr1,functio ...
- 第三篇--创建.gitignore文件
小知识 · git add -A 提交所有变化 · git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) · git add . 提交 ...
- 在centos 7 下安装 nginx
在Linux下安装 nginx 1下载对应当前系统版本的nginx包(package) wget http://nginx.org/packages/centos/7/noarch/RPMS/ngi ...
- markdown 【demo】
第一次开始 用markdown 编辑器 public class{ public static void main (String[] agrs){ System.out.println(" ...
- Java基础--面向对象编程1(类与对象)
1.类(class)的定义 类是对一组具有相同特征和行为的对象的抽象描述. 在程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物. 2.对象(object)的定义 对象是类的具体实现 ...
- 010 socket定义服务器
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Ne ...
- NCE损失(Noise-Constrastive Estimation Loss)
1.算法概述 假设X是从真实的数据(或语料库)中抽取的样本,其服从一个相对可参考的概率密度函数P(d),噪音样本Y服从概率密度函数为P(n),噪音对比估计(NCE)就是通过学习一个分类器把这两类样本区 ...