Logo

郎哥编程

局部内部类

2019-12-24 235

局部内部类是指在外部类的方法内定义的类,由于内部类在外部类的方法内定义,内部类的生命周期会随着方法的生命周期结束而结束。因此内部类的作用范围仅限于方法内,在方法的外部不能访问该内部类。

案例1:新建一个Teacher类,在Teacher类的teaching()方法内部定义一个内部类Course(课程类)。

在PCoreUnit3项目student包内新建Teacher类。代码如下:

package student;
 
/** 
* @ClassName: Teacher 
* @Description: 包与类的高级特性(局部内部类)案例
* @author 编程训练营 
* @date 2019年12月23日 
* 
*/
 
public class Teacher {
    // 定义teaching()方法
    public String teaching(String courseName)
    {
       //定义内部类
       class Course {
          String courseName;
          public Course(String courseName)
          {
              this.courseName = courseName;
          }
          String getCourseTime()
          {
              return "每周五上午9点上课";
          }
       }
       // 实例化Course对象
       Course course = new Course(courseName);
       return course.getCourseTime();
    }
   
}

在Teacher 类的teaching()方法内部定义了Course类,用于获取课程的上课安排时间。Course类需要传入课程名称,并对外提供了getCourseTime()方法,返回传入课程名称的上课安排时间。

需要注意的是,局部内部类的成员变量和方法不能使用访问权限符修饰。因为方法外部的代码无法访问内部类。

案例2:建立TeacherTest类,实例化Teacher 对象,并调用Teacher 对象teaching()方法获取课程的上课安排时间。

在PCoreUnit3项目student包内新建TeacherTest类。代码如下:

package student;
 
/** 
* @ClassName: TeacherTest 
* @Description: 包与类的高级特性(局部内部类)案例2
* @author 编程训练营 
* @date
* 
*/
 
public class TeacherTest {
 
    /** 
    * @Title: main 
    * @Description:Java程序入口main方法
    * @param @param args    参数 
   
    * @return void    返回类型 
    * @throws 
    */
 
    public static void main(String[] args) {
       // 实例化Teacher对象
       Teacher  teacher = new Teacher();
       // 输出课程安排时间
       System.out.println("体育课上课安排:" + teacher.teaching("体育"));
 
    }
 
}

程序执行结果如下图所示:

image.png

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论