day04(权限修饰符,内部类,局部内部类,匿名内部类)
权限修饰符,
Public >protected >default > private
public 公共权限 随便都可以访问
protected 子类可以访问权限 (子类跨包访问父类)
package day04.demo01;
public class Demo02 {
public void public01(){}
protected static void protected01(){
System.out.println("protected");
}
static void default01(){
System.out.println("default");
}
private static void private01(){
System.out.println("private");
}
}
方法定义在demo01下 在demo02下进行调用

default 默认权限 同一包下 出了包 就访问不到default01方法

private 出了当前类 其他类都不能访问
内部类,
1.在类的内部,创建类,这个类称为内部类 这个类跟普通类没有区别
2.内部类和类只是内部和外部的关系,不是子父类的关系 ,但可以使用this关键字
class Outer{
int num=10;
public void method(){
System.out.println("Out Method");
}
class Inner{//內部类
int num=20;
public void method(){
System.out.println("Inner Method");
System.out.println(num);//20 就近原则
System.out.println(this.num);//使用this调用当前类下成员变量
System.out.println(Outer.this.num);//使this指向Outer类中的成员变量
Outer.this.method();//调用Outer下的method方法
}
}
}
说明 在Inner的对象中有一个值指向了Outer对象

输出结果
Inner Method
20
20
10
Out Method
局部内部类,
位置:方法中
class Outer{
int num=10;
public void method(){
class Inner{//內部类 创建在在方法中 称为 局部内部类
int num=20;
public void method(){
System.out.println("Inner Method");
System.out.println(num);//20
System.out.println(this.num);//使用this调用Outer类下成员变量 20
System.out.println(Outer.this.num);//10
}
}
Inner i=new Inner();//必须在Inner类后调用 否则无法识别
i.method();
System.out.println(i.num);//20
}
}
输出结果:
Inner Method
20
20
10
20
匿名内部类,
一般的实现接口类
interface Inter01 {
public abstract void eat();
}
public class Animal implements Inter01 {
public void eat() {
System.out.println("eat");
}
public static void main(String[] args) {
Animal a = new Animal();
a.eat();
}
}
使用匿名内部类:创建一个类(抽象类,接口) 并创建该类的对象 实现方法
优点:如果一个实现接口类只调用一次,使用内部来调取,会节约内存
注意事项:
在方法中匿名内部类外 定义一个变量 如果匿名内部类使用了该变量 则改变量需要使用final 修饰
原因:因为这个匿名内部类对象执行完以后还会存在 在匿名内部类中会调用到该变量
如果该变量在执行方法完后,会消失,所以该变量必须被final修饰成为常量存储在方法区的常量池中。
class Test {
public void method() {
final int num=10;
new Inter01() {
@Override
public void eat() {
System.out.println(num);
}
};
}
}
day04(权限修饰符,内部类,局部内部类,匿名内部类)的更多相关文章
- 06 面向对象:多态&抽象类&接口&权限修饰符&内部类
多态: /* 多态(polymorphic)概述 * 事物存在的多种形态 多态前提 * a:要有继承关系. * b:要有方法重写. * c:要有父类引用指向子类对象. * 成员变量 * 编译看左边(父 ...
- static介绍、内部类、final、权限修饰符的作用范围
static 关键字:(可用于修饰方法.变量) static 特点: static是静态修饰符,一般修饰成员变量.被static修饰的属于全局共享.被static修饰的成员属于 ...
- 包和访问权限修饰符,.单例设计模式,.Object类常用方法,.内部类
1.包和访问权限修饰符 1.1 包 为什么要导包? 将字节码文件(.class)文件进行分类存放 --->包 其实就是文件夹 import java.util.Arrays; 包的划分规则 方案 ...
- java自学第3期——继承、多态、接口、抽象类、final关键字、权限修饰符、内部类
一.继承: 关键字extends /* 定义一个父类:人类 定义父类格式:public class 父类名称{ } 定义子类格式:public class 子类名称 extends 父类名称{ } * ...
- 零基础学习java------day10------带包编译,权限修饰符,内部类,调式,junitTest
0. 带包编译 解决使用notepad++编写的java类中如果有package的解决方案,如下代码 package com._51doit.test; class HelloWorld{ publ ...
- Java基础学习笔记(四) - 认识final关键字、权限修饰符和内部类
一.final关键字 为什么要使用 final 关键字? 通过继承我们知道,子类可以重写父类的成员变量和方法.final 关键字可以用于修饰父类,父类成员变量和方法,使其内容不可以被更改. 1.被修饰 ...
- 匿名类、包、权限修饰符_DAY10
1:内部类(理解) (1)把类定义在一个类的内部. (2)特点: A:内部类可以直接使用外部类的成员,包括私有. B:外部类要使用内部类成员,必须创建对象使用. 例子: public c ...
- 面向对象 继承 抽象类 接口 static 权限修饰符
Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出 ...
- Java中的四种权限修饰符
权限修饰符 public protected [default] private 同一个类 YES YES YES YES 同一个包 YES YES YES NO 不同包子类 YES YES NO ...
随机推荐
- MIUI 6的毛玻璃效果的技术实现(实时模糊)
说说MIUI 6的毛玻璃效果的技术实现. 很久以前我们的文件夹打开和最近任务等几个地方就使用了毛玻璃效果,在技术上讲就是背景模糊.应该是比iOS 7的使用要早很多.不过那时候我们使用的是先对背景截 ...
- mysql 中文编码问题
- java链接FTP实现上传和下载
FtpUtil.java import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStr ...
- [leetcode]143. Reorder List重排链表
Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You may not mod ...
- MSVCR90D.dll
http://stackoverflow.com/questions/218747/msvcr90d-dll-not-found-in-debug-mode-with-visual-c-2008 I ...
- metasploit渗透测试指南概要整理
一.名词解释 exploit 测试者利用它来攻击一个系统,程序,或服务,以获得开发者意料之外的结果.常见的 有内存溢出,网站程序漏洞利用,配置错误exploit. payload 我们想让被攻击系统执 ...
- 面向对象设计模式纵横谈:Prototype 原型模式(笔记记录)
有一段时间没写东西了,今天继续把没写完的设计模式写完,今天这堂课是创建型设计模式的最后一堂课,原型设计模式,它同样也是解决了对象在创建的过程中的解耦合的情况,面对变化使代码更稳定,更准确的说是使 ...
- DB2中的数据类型
DB2中的数据类型DB2内置数据类型可以分成数值型(numeric).字符串型(character string).图形字符串(graphic string).二进制字符串型(binary strin ...
- Java WebService 知识点汇总
java webservice 获取传入IP axis.jar servlet.jar MessageContext mMsgContext = MessageContext.getCurren ...
- HDU_5688
/* 度熊所居住的 D 国,是一个完全尊重人权的国度.以至于这个国家的所有人命名自己的名字都非常奇怪.一个人的名字由若干个字符组成,同样的,这些字符的全排列的结果中的每一个字符串,也都是这个人的名字. ...