java中,类走之间可以嵌套吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中,类走之间可以嵌套吗?相关的知识,希望对你有一定的参考价值。
那类之间可以嵌套,嵌套在外部类中的类称为内部类,那内部类和外部类都有什么限制条件的吗?
首先 类之间是可以嵌套的。其次 内部类一般常用的有:
1、普通内部类 即:直接在一个类的内部定义另外一个类
创建内部类时,外部类的对象必须已经创建
即:例子
public class Class1
int i;
class Inner
static int j;//这是错误的
int j;//正确
private void getData()
i = 2;
Class1.Inner inner = new StringSplit().new Inner();
实例内部类会持有外部类的引用
即:上例中的 i = 2;等价于 Class1.this.i = 2;
实例内部类不能定义static静态成员变量,只能定义实例成员变量
2、静态内部类
不会持有外部类的引用,若要使用外部类的成员变量,则需生成外部类的对象
创建时可以没有外部类的实例 即:
public class Class1
static int i;
int k;
static class Inner
static int j;//这是错误的
int j;//正确
private void getData()
i = 2;//上面i为静态,此处正确,否则错误
Class1 class1 = new Class1();
class1.k;//正确
Class1.Inner inner = new Class1.Inner();
可以访问外部类的静态变量 参考技术A 可以 一个 .java 文件里面 可以有多个class
但是只能有一个 public class
而且 这个public class的名字 必须和文件名一样。 参考技术B 类是可以嵌套的,java中叫内部类
没什么限制,看你怎么定义了,有的定义只是没什么意义 参考技术C 可以,内里面的内是内部类,使用时有一定的规范 参考技术D 可以的
有内部类啊
匿名内部类啊
google protobuf可以用于android中C和Java服务之间的通信吗?
【中文标题】google protobuf可以用于android中C和Java服务之间的通信吗?【英文标题】:Can Google protobuf be used for communication between C and Java services in android? 【发布时间】:2017-03-08 07:53:12 【问题描述】:我们有一个用 C 语言编写的带有 c-protobuf 接口和 C++ 包装 API 的遗留协议栈,需要移植到 Android 并使用 AIDL 接口开发 java 服务。那么问题来了,
我们能否移除 C++ 接口并让 Java 服务通过 protobuf 与 C 原生进程通信?
另一种方法是剥离c-protobuf接口,开发JNI接口。 protobuf 与 JNI 方法之间的权衡是什么?
据我所知,与 JNI 方法相比,由于 IPC、序列化等原因,性能将是一个问题。考虑到 Java 和 Android 上下文,这种方法还有其他主要缺点吗?此外,该服务将被多个用户应用程序使用。
【问题讨论】:
我会选择 #2,它会比 #1 快得多(即使你使用 unix 管道而不是套接字) 【参考方案1】:当然可以。
正如@pskink 已经指出的那样,JNI 将导致更小的开销。特别是在大量带有小参数的调用的情况下。作为奖励,您实际上可以选择以字节数组的形式传递序列化的协议缓冲区。我希望它的开销非常小,并且可以使界面的进一步修改更容易。
根据您计划如何将所有内容打包在一起,JNI 接口可能更容易保持兼容,因为所有内容都构建在单个 APK 中。
【讨论】:
以上是关于java中,类走之间可以嵌套吗?的主要内容,如果未能解决你的问题,请参考以下文章
在 Java 中,我可以使用 DecimalFormat 在数字之间输入破折号 (-) 吗?