如果一个事物内部包含另一个事物,就是一个类中包含着其他类。
**例如:**身体和心脏的关系,汽车和发动机的关系。。。
分类:
package com.hanxiao.inner;
public class Body {
private String name;
public class Hert{
public void beat(){
System.out.println("心脏跳动:beng ,beng ,beng !");
System.out.println("我是: "+ name);
}
}
public void methodBody(){
System.out.println("外部类的方法");
Hert hert = new Hert();
hert.beat();
}
}
class Test{
public static void main(String[] args) {
// 1.间接使用:通过外部类中的方法new内部类对象调用
Body body = new Body();
body.methodBody();
System.out.println("===========");
//2.直接使用:外部类名称.内部类名称 对象名 = new 外部类名().new 内部类名()
Body.Hert hert = new Body().new Hert();
hert.beat();
}
}
成员内部类变量访问
package com.hanxiao.inner;
public class Outer {
int num = 10; //外部类成员变量
public class Inner{
int num = 20;//内部类成员变量
public void methodInner(){
int num = 30; //内部类局部变量
System.out.println(num); //内部类局部变量 30
System.out.println(this.num); // 内部类成员变量 20
System.out.println(Outer.this.num); //外部类成员变量 外部类名.this.外部类成员变量 10
}
}
}
定义在方法内的类,只有当前所属的方法才能使用它,出了这个方法就不能用了
package com.hanxiao.inner;
public class Outer {
public void methodOuter(){
int a = 20;//此处必须为 final int num =10,只是省略了
class Inner{
int num = 10;
public void methodInner(){
System.out.println(num);
System.out.println(a);
}
}
Inner inner = new Inner();
inner.methodInner();
}
}
class Test2{
public static void main(String[] args) {
//只能这么使用
Outer outer = new Outer();
outer.methodOuter();
}
}
如果接口的实现类(或者师父类的子类)只需要使用唯一的一次,这种情况下就可以省略掉该类的定义,而改为使用【匿名内部类】。
定义格式:
接口名称 对象名 = new 接口名称(){
//覆盖重写所有的抽象方法
};
先得有一个接口
package com.hanxiao.inner;
public interface MyInterface {
public abstract void method();
}
使用匿名内部类实现调用
public class a{
public static void main(String[] args) {
MyInterface myInterface = new MyInterface() {
@Override
public void method() {
System.out.println("匿名内部类实现了方法");
}
};
myInterface.method();
}
}
补充:继承String本身就是一个错误的行为,对String类型最好的重用方式是关联关系(Has-A)和依赖关系(Use-A)而不是继承关系(Is-A)。18、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?答:是值传递。Java语言的方法调用只支持参数的值传递。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用(地址值)。对象的属性可以在被调用过程中被改变,但对对象引用的改变是不会影响到调用者的。C++和.
之前的手动校是在Action中编写validate犯法或validateXXX形式的方法来完成校验的,如果要给予验证框架来完成输入校验,只需在于Action同一目录下创建一个xml格式的验证文件即可。而之前Action中添加validate方法或validateXXX方法就不需要了。Action.java代码package action;import com.opensymphon
为什么80%的码农都做不了架构师?>>> ...
在上个月公司决定分发许多重复的小程序来抢占关键词,当时琢磨了一下两个开发方案想的第一个方案是通过微信提供的http调用和命令行调用然后写一个shell 脚本,但是想想行不通,因为我如果写一个分发工具的话肯定不只是专业技术人员来分发,可能会给公司的其他同学来负责,第二个方案是自己搭建一个第三方平台一切都是傻瓜式操作(手动滑稽);第三方平台是做什么的 公众平台第三方平台是为了...
贪心水题,每次把山峰删去,如果不存在山峰,则删去最后k个数字#include#includechar s[12];int main(){ int n; scanf("%d",&n); for(int q=0;q<n;q++) { int k; scanf("%s",s); scanf("%d",&k); int len=strlen(s); while(k-
鸿蒙系统PC版是一款面向未来、面向全场景的分布式操作系统,该系统能够支持多种终端设备,其分布式能力造就新硬件、新交互、新服务,打开焕然一新的全场景世界,据悉,鸿蒙2.0系统在关键的分布式软总线、分布式数据管理、分布式安全等分布式能力上进行了全面升级。【系统特色】1、在终端操作系统中首次采用分布式体系结构,实现跨终端的无缝协作体验鸿蒙2.0系统的“分布式操作系统架构”和“分布式软总线技术”通过公共通...
文章目录01Hadoop概述02Hadoop生态圈03Hadoop的优缺点导读:Hadoop是较早用于处理大数据集合的分布式存储计算基础架构,目前由Apache软件基金会管理。通过Hadoop,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力执行高速运算和存储。简单地说,Hadoop是一个平台,在它之上可以更容易地开发和运行处理大规模数据的软件。01Hadoop概述Hadoop体系也是一个计算框架,在这个框架下,可以使用一种简单的编程模式,通过多台计算机构成的集群,分布式处理
来自:51CTO 作者:徐飞本文标题:好与坏的程序员:如何客观评价程序员的水平?本文地址:https://www.oschina.net/news/87295/good-and-bad-programmer有感于知乎上的一篇关于程序员的讨论。让我突然之间心有戚戚然的感觉。最近一段时间有点江郎才尽的感觉,写不了大的主题,就写点小东西吧。 我们从知乎上面引用的这段小故事开始: ...
2021最新Dubbo面试题【附答案解析】Dubbo面试题及答案2021,Dubbo最新面试题及答案,Dubbo面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的。这些答案难免会存在一些错误,仅供大家参考。如果发现错误还望大家多多包涵,不吝赐教,谢谢~如果不背 Dubbo 面试题的答案,肯定面试会挂!这套Dubbo 面试题大全,希望对大家有帮助哈~博主已将以下这些面试题整理成了一个Java面试手册,是PDF版的1、Dubbo 是什么?Dubbo 是一个分布式
MySQL 8.0+才引入regexp_replace,regexp_like,regexp_instr,regexp_substr四个函数,在低于此版本的MySQL客户端执行这四个函数,报错:FUNCTION regexp_xxx does not exist下面蓝色字体是链接,个人整理的正则表达式大全正则表达式大全。
Linux下安装protobuf并实现简单的客户端服务器端通信http://code.google.com/p/protobuf/downloads/list上可以下载Protobuf的源代码。安装步骤如下所示: 1>tar -xzf protobuf-2.5.0.tar.gz //进入目录 cd protobuf-2.5.0 //将p
问题 G: 比较字符串时间限制 : 1.000 sec 内存限制 : 32 MB题目描述输入两个字符串,比较两字符串的长度大小关系。输入输入第一行表示测试用例的个数m,接下来m行每行两个字符串A和B,字符串长度不超过50。输出输出m行。若两字符串长度相等则输出A is equal long to B;若A比B长,则输出A is longer than B;否则输出A is shorter than B。样例输入2abc xybbb ccc样例输出abc is longer tha