Java内部类手机专卖店_JAVA——内部类的那些事儿
obj3.func();
//3.2 访问静态内部类的静态方法(通过类名访问)
Outer.StaInner.staFunc();
//4 局部内部类访问局部变量
Outer obj4 = new Outer();
obj4.local();
//5 匿名内部类
Outer obj5 = new Outer();
obj5.anonymous();
//6 匿名内部类作为参数
asPara(new AbstractClass() {
public void func() {
System.out.println(匿名内部类作为参数);
}
});
}
public static void asPara(AbstractClass ac) {
ac.func();
}
}
//抽象类:作为匿名内部类存在的前提(前提:存在一个类(具体类或者抽象类)或者接口)
abstract class AbstractClass{
public abstract void func();
}
//外部类
class Outer{
private String hello = 内部类可以访问外部类数据成员(包括私有成员);
//内部类------------------------------
class Inner{
public void func() {
//内部类获取了外部类的引用Outer.this
System.out.println(Outer.this.hello);
System.out.println(hello);
}
}
//内部类私有---------------------------
private class PriInner{
public void func() {
System.out.println(内部类私有,外部类提供public方法访问);
}
}
//外部类提供public方法访问
public void providePublicFunc() {
PriInner pi = new PriInner();
pi.func();
}
//静态内部类--------------------------
static class StaInner{
//非静态方法
public void func() {
System.out.println(静态内部类的非静态方法);
}
//静态方法
public static void staFunc() {
System.out.println(静态内部类的静态方法);
}
}
//局部内部类---------------------------
//外部类中的成员方法local()
public void local() {
final String str = 局部内部类访问局部变量;
class LocInner{
public void func() {
//访问的局部变量要用final修饰,但jdk1.8不用
System.out.println(str);
}
}
//局部内部类只能在方法中访问
LocInner li = new LocInner();
li.func();
}
/*匿名内部类(是一个内部类) 前提:存在一个类(具体类或者抽象类)或者接口
* 本质:继承了该类或者实现该接口的一个子类匿名对象
* */
//外部类中的成员方法anonymous()
public void anonymous(){
new AbstractClass() {
public void func() {
System.out.println(重写抽象类中func()抽象方法);
}
}.func();
/*
相当于一个继承了AbstractClass的子类的一个对象obj,然后,obj.func();
思考1:若AbstractClass中还有一个抽象方法func1(),怎么调用?
方法:
AbstractClass ac = new AbstractClass() {
public void func() {
System.out.println(重写抽象类中func()抽象方法);
}
public void func1(){
System.out.println(重写抽象类中func1()抽象方法);
}
}
ac.func();
ac.func();
思考2:若匿名内部类中有自己定义的方法myFunc(),how?
思路:向下强转?but子类的类名是什么?
所以,匿名内部类针对一个方法比较好
* */
}
}
运行结果:
相关文章:

Linux下Postfix的配置和使用
Postfix为何物,详见:http://zh.wikipedia.org/wiki/Postfix 0.关于Postfix postfix的产生是为了替代传统的sendmail.相较于sendmail,postfix在速度。性能和稳定性上都更胜一筹。如今眼下许多的主流邮件服务事实上都在採用postfix. 当我们须要一个轻量级的…
部分人说 Java 的性能已经达到甚至超过 C++,是真的吗?
好多Java程序员都说由于JIT技术的引入,Java的性能已经和C一样了,而且Java的开发效率极高,可以省下60%的时间。请问事实真的是这样吗?我平常也都在写这两个语言,但是因为开发的软件的复杂度不大,并没有感觉到…

Wiki 开源软件
Wiki 是一个协同著作平台或称开放编辑系统。所谓协同工作, 即它能够让浏览网页的人都能够去修订网页,其简介的 ... Wiki 是怎么做到的. Wiki 使用 了简化的语法,替代复杂的HTML,加上WEB 界面的编辑工具,降低内容维护的…
Android studio安装与调试
1.下载安装android studio 下载好之后安装好2.启动报错提示1)进入刚安装的Android Studio目录下的bin目录。找到idea.properties文件,用文本编辑器打开。2)在idea.properties文件末尾添加一行: disable.android.first.runtrue &am…

java的父类java.lang.object_根父类:java.lang.Object
1、根父类(1)Object类型是所有引用数据类型的超类,包括数组类型如果一个类没有显式的声明它的父类,那么它的父类就是Object。(2)Object类中的方法,会继承到所有类型的对象中,包括数组对象。即所有对象都可以调用Object类中声明的方…

spring cloud服务发现注解之@EnableDiscoveryClient与@EnableEurekaClient
在使用服务发现的时候提到了两种注解,一种为EnableDiscoveryClient,一种为EnableEurekaClient,用法上基本一致,今天就来讲下两者,下文是从stackoverflow上面找到的对这两者的解释:原文链接 There are multiple implementations of…

strust2自定义interceptor的基本方法及操作
需求:制作一个网站需要用户登陆后才能查看,即一个权限的问题 1.首先明确在用户没登陆前有两个Action请求是可以通过的,即注册和登陆。 2.创建拦截器,如UserLoginInterceptor.java,如下 public class UserLoginIntercep…
使用xdebug分析thinkphp框架函数调用图
开发中需要性能调优,使用xdebug分析thinkphp框架函数调用图。关于xdebug的安装参考这2篇 NetBeans配置Xdebug 远程调试PHP php扩展xdebug安装以及用kcachegrind系统分析1.安装xdebug 需要先去http://www.xdebug.org看看一些文档,xdebug作为php扩展安装 #…

java+script+当前日期_如何在JavaScript中获取当前日期?
如何在JavaScript中获取当前日期?#1楼您可以使用扩展了 Date对象的Date.js库,从而可以使用.today()方法。#2楼如果您想对日期格式进行更多的粒度控制,我强烈建议您查看一下momentjs。 很棒的图书馆-只有5KB。 http://momentjs.com/#3楼你可以…

java中的类修饰符、成员变量修饰符、方法修饰符。
类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。 abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供…
Linux 系统挂载数据盘
Linux 系统挂载数据盘: 适用系统:Linux(Redhat , CentOS,Debian,Ubuntu)* Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作。下面的操作将会把数据盘划分为一个…

java 启动某个类_java – Spring Boot – 如何指定备用启动类? (多个入口点)
我想添加一个替代的入口点到我的Spring-Boot应用程序.我宁愿把它当成一个肥罐.这可能吗?根据他们的documentation,属性loader.main指定要启动的主类的名称.我尝试java -jar MyJar.jar –loader.main com.mycompany.AlternateMain,但是我的pom.xml中指定的start-cla…

WIN7 64位系统下,右下角的声音和电源图标不见的解决办法
近日,电脑突然出现任务栏右下角的声音和电源图标消失不见的问题,重启仍旧没有修复,后来找到了解决办法 解决办法: 1.CtrlShiftEsc键调出windows资源管理器。 2.找到进程中的explorer.exe进程并结束它。 3.在文件选项的新建任务选项…

创建Maven版Java工程
步骤: 创建成功后,如图: 转载于:https://www.cnblogs.com/zhzcode/p/9722902.html
Linux系统启动任务的写法
1.到/etc/rc.d目录# cd /etc/rc.d 2.修改rc.local # vim ./rc.local你之前是怎么启动nginx和php命令复制即可。例如:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf/etc/init.d/php-fpm3.一定要给权限 # chmod x rc.local特别是喜欢下载到本地修…

java ee不能运行_Java9+移除 Java EE,导致我的 groovy 脚本无法运行
以以下这段代码为例Grab(org.jsoup:jsoup:1.10.1)import org.jsoup.JsoupJsoup.connect(https://v2ex.com).get().select(span.item_title > a).each {println it.text() : https://v2ex.com it.attr(href)}原本是 groovy2.5java8,可以正常跑,然后…

虚拟文件系统(VFS)
原文链接:http://www.orlion.ga/1008/ linux在不同的文件系统之上做了一个抽象层,使得文件、目录、读写访问等概念都成为抽象层概念,这个抽象层被称为虚拟文件系统(VFS)。 linux内核的VFS子系统如下: 每个进程在PCB(Process Control Block)中…

[学习笔记]矩阵乘法及其优化dp
1.定义: $c[i][j]\sum a[i][k]\times b[k][j]$ 所以矩阵乘法有条件,(n*m)*(m*p)n*p 即第一个矩阵的列数等于第二个矩阵的行数,否则没有意义。 2.结合律与分配率 矩阵乘法不一定任何时候都有交换律。因为交换后甚至不能保证第一个矩阵的列数等…

[LeetCode] Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串...
Given a string, find the length of the longest substring T that contains at most k distinct characters. For example, Given s “eceba” and k 2, T is "ece" which its length is 3. 这道题是之前那道Longest Substring with At Most Two Distinct Charac…

Linux创建指定用户特定指定目录权限
指定用户特定指定目录权限需要注意要指定好文件夹的权限,不然会导致nginx不能访问,最好是在root下建立目录,然后 # useradd -d /usr/www -m tempuser# passwd tempuser 回车输入密码 注意一定要带用户名,不然就是修改root!!!# c…

python asyncio教程_python中使用asyncio实现异步IO实例分析
1、说明Python实现异步IO非常简单,asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行…

c语言初学 循环 的灵活使用小案例
上为流程图 上为代码实现,没有做优化。接下来是效果图。 时间2018.10.01 地点:广东轻工业职业技术学院复制代码 转载于:https://juejin.im/post/5bb1d98a5188255c9a77441a
常见maven引用
json-lib Could not find artifact net.sf.json-lib:json-lib:jar json-lib是需要区分jdk版本的,pom.xml中的配置应加上<classifier>标签,如用jdk15: <dependency><groupId>net.sf.json-lib</groupId><artifactId…

怎么控制table的大小java_如何查询Table占用空间的大小
Oracle和DB2都支持分区表,但是我们得知道什么样的表适合使用分区表技术,Oracle的官方建议是超过2G的Table就要使用分区表。下面来总结一下,各DB中如何获得这些大小信息:Oracle 10G中:查询出当前用户的表所占用的空间大…

王豪:HW265到“HW266”
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/82929609 每年的MSU的视频压缩评比报告都是多媒体的热点话题之一,在MSU 2018评比中,华为HW265在多项测试中排名…
Flex报错Error #2048: 安全沙箱冲突
FlexJPA架构,JPA程序迁移,从A服务器到B。其他一切没变,唯一变的就是IP。 前端Flex也就是swf报错Error #2048: 安全沙箱冲突:http://xxx.swf 不能从 xxx 加载数据 如下:其实原因就是需要在www网站的根目录放一个crossdomain.xml就可…

centos 默认mysql_centos改变mysql默认目录
centos改变mysql默认目录查看SELinux状态:如果未关闭,则要关闭1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态SELinux status: enabled2、getenforce ##也可以用这个命令检查关闭SELinux修改配置文件需要重启机器:…

如何免费(轻成本)在网上做推广宣传
最近有很多人在问我一个问题,如何少成本或者免费的在网上做推广宣传,这里我也总结一下,给各位一些建议和小方法,目前就以“BAT”和其他平台为例说明一下,通常来说都会以百度重技术、阿里重运营、腾讯重产品来形容“BAT…

BZOJ2631tree——LCT
题目描述 一棵n个点的树,每个点的初始权值为1。对于这棵树有q个操作,每个操作为以下四种操作之一: u v c:将u到v的路径上的点的权值都加上自然数c;- u1 v1 u2 v2:将树中原有的边(u1,v1)删除,加入…
MyBatis点滴积累
MyBatis在使用中不知不觉积累了很多经验1.#和$ MyBatis/Ibatis中#和$的区别1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如…