java的类可以定义在任何位置:

一般的类是一个文件里面写一个类,且类名和文件名相同,但是定义类的位置可以是任意的如图:

上图示例:

public class A{
class B{ } static class C{ } void doSomeThing(){
class D{ }
}
} class E{ } interface F{ }

实例展示:

public class A{
class B{
void im(){
System.out.println("I am B");
}
} static class C{
void im(){
System.out.println("I am C");
}
} void doSomeThing(){
System.out.println("I am A doSomeThing");
class D{
void im(){
System.out.println("I am D");
}
}
D d=new D();
d.im();
} public static void main(String[] args) {
A a=new A();
a.doSomeThing();
B b=a.new B();
b.im();
C c=new A.C();
c.im();
E e=new E();
e.im();
F f=new F(){
public void im(){
System.out.println("I am F");
}
};
f.im();
}
} class E{
void im(){
System.out.println("I am E");
}
} interface F{
void im();
}

通过上面的示例就可以看出,Java的类可以放在任何位置。

1、放在同级的类中的是其他类,不能被该文件之外的其他类访问。

2、放在类中的属于内部类。

3、放在类中且被static关键词修饰的属于静态内部类。

4、放在类中的方法里面的类属于局部内部类。

 特别说明: 类F(匿名内部类)
F类是一个接口,拥有一个 im() 方法,但是没有实现类,一般来说我们要先为她创建实现类实现里面的方法,才能调用,但是也可以在创建它的实例的时候再去实现它,这样的话实现类就不见了(也就是匿名了),所有称这样的类叫做匿名内部类。

匿名内部类的三要素:

1、匿名的类必须包含抽象方法(接口/抽象类)。

2、在实例化类的同时去实现该抽象方法。

3、由于没有名字,只能使用一次。

java类的定义位置的更多相关文章

  1. java类中定义接口

    今天看到一个java类中定义了接口,写个备忘录,记录一下 package com.gxf.test; public class Test_interface { public interface sh ...

  2. Java类的定义与类的实例化

    目录 Java类的定义与类的实例化 类的定义 定义一个简单的类 定义一个成员变量 定义一个方法 定义一个构造器 类的实例化 创建对象及使用对象: 创建对象的过程在内存中的表现 Java类的定义与类的实 ...

  3. 夜谈Java类的定义

    女孩:谈Java了,好耶? 男孩:夜谈一下,Java的类的定义~ 女孩:那谈Java的类的什么呢? 男孩:类的定义,对象的定义,类中的方法,构造方法,this关键字,方法的重载,Java中的类的访问权 ...

  4. Java类的定义及其实例化

    如果你不了解类和对象的概念,请猛击这里:Java类和对象的概念 类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public cl ...

  5. 《Java基础知识》Java类的定义及其实例化

    类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public class Dog { String name; int age; ...

  6. java 类内部定义接口

    java类内部可以定义接口,作用可以看作是对类功能的进一步补充,类里面包含两部分:一部分是自己的固定的,一部分是可以变化的,而这可变的部分就编程了一个接口. 另一个作用是避免命名冲突. 示例 类Fru ...

  7. 7.2 java 类的定义和使用

    /* * 类的定义: * 类是用来描述现实世界的事物的 * * 事物: * 属性 事物的描述信息 * 行为 事物能够做什么 * * 类是如何和事物进行对应的呢? * 类: * 成员变量 * 成员方法 ...

  8. java类的定义与使用

    一 引用数据类型 1.引用数据类型的分类 我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包 含了很多的方法与属性,可供我们使用. ...

  9. java类的定义以及参数传递

    class类(类似结构体)的定义 import java.util.Scanner; import java.io.*; class student{//类的名称 public String name ...

随机推荐

  1. 冲刺随笔——Day_Nine

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺 作业正文 正文 其他参考文献 无 ...

  2. [BJDCTF2020]ZJCTF,不过如此 php伪协议, preg_replace() 函数/e模式

    转自https://www.cnblogs.com/gaonuoqi/p/12499623.html 题目给了源码 <?php error_reporting(0); $text = $_GET ...

  3. Robot framework 环境搭建+图标处理

    场景:随着现在项目各种赶工,很多时候界面上的功能还没有实现,这时就可以先对接口进行验证,提早发现一些和预期不一致的错误. Robot framework需要的几个知识点: 测试库:RF是大树,测试库就 ...

  4. LeetCode初级算法之字符串:7 整数反转

    整数反转 题目地址:https://leetcode-cn.com/problems/reverse-integer/ 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 ...

  5. 在iframe中获取另一个iframe中的元素

    $(top.parent.iframeId).contents().find("#selector") //iframeId为iframe的id名称

  6. AcWing 317. 陨石的秘密

    1 -> {} 2 -> [] 3 -> () \(f[d][a][b][c]\) 表示 \([i * 2 - 1, j * 2]\) 这段区间 深度为 d \(1\) 有 \(a\ ...

  7. 算法——模拟LRU机制

    运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 . 实现 LRUCache 类: LRUCache(int capacity) 以正整数作为容量 capacity 初始化 ...

  8. JavaScript:常用的一些数组遍历的方法

    常用的一些遍历数组的方法: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  9. sql server如何把退款总金额拆分到尽量少的多个订单中

    一.问题 原来有三个充值订单,现在要退款450元,如何分配才能让本次退款涉及的充值订单数量最少?具体数据参考下图: 二.解决方案 Step 1:对可退金额进行降序排列,以便优先使用可退金额比较大的订单 ...

  10. Greenplum 性能优化之路 --(一)分区表

    一.什么是分区表 分区表就是将一个大表在物理上分割成若干小表,并且整个过程对用户是透明的,也就是用户的所有操作仍然是作用在大表上,不需要关心数据实际上落在哪张小表里面.Greenplum 中分区表的原 ...