Java面向对象之内部类(访问格式)
一、基础概念
1.内部类是定义在类中的类。A类需要直接访问B类中的成员时,可以将A类定义到B类中,作为B类的内部类存在。
2.内部类可以相当于外部类中的一个成员,可以被成员修饰符所修饰。(如:public private static)
3.静态内部类可以相当于一个外部类进行使用。
4.非静态的内部类只允许定义静态的常量,不能定义其他静态成员。
5.访问规则:
内部类可以直接访问外部类中的成员,因为内部类持有了外部类的引用。外部类名.this
外部类要访问内部类需要创建内部类的对象。
二、实例代码
//外部类Outer
class Outer
{
private static int num = 4; //内部类Inner_1
class Inner_1
{ void show1()
{
System.out.println("内部类Inner_1 ,show1 "+num);//内部类Inner_1可以直接访问外部类Outer中的成员num
}
} //外部类中的方法Method访问内部类Inner_1中的方法show1
public void Method()
{
Inner_1 in = new Inner_1();
in.show1();
} //静态内部类Inner_2
static class Inner_2
{
void show2()
{
System.out.println("内部静态类Inner_2 ,show2 "+num);
}
static void show3()
{
System.out.println("内部静态类Inner_2 ,show3 "+num);
}
} class Inner_4
{
static final int count = 5; //内部类中定义静态的常量
void show4()
{
System.out.println("内部类Inner_4 ,show4 "+count);
}
}
} class InnerClassDemo
{
public static void main(String[] args)
{
//创建外部类对象,访问内部类。
Outer out = new Outer();
out.Method(); //创建非静态的内部类对象,可以通过创建外部类对象,被外部其他程序访问。
Outer.Inner_1 i1 = new Outer().new Inner_1();
i1.show1(); //创建静态内部类对象,并访问非静态成员。
Outer.Inner_2 i2 = new Outer.Inner_2();
i2.show2(); //创建静态内部类对象,并访问静态成员。
Outer.Inner_2.show3();
Outer.Inner_2 i4 = new Outer.Inner_2();
i4.show3(); //创建非静态的内部类对象,并访问静态变量。
Outer.Inner_4 i5 = new Outer().new Inner_4();
i5.show4();
}
}
三、代码运行
Java面向对象之内部类(访问格式)的更多相关文章
- Java面向对象之内部类(匿名内部类)
一.基础概念 匿名内部类:简化书写的内部类.其实匿名内部类就是一个子类对象. 前提:内部类需要继承或者实现外部的类或者接口. 格式:new 父类或者接口(){定义子类的内容} 二.将内部类定义到局部的 ...
- JAVA基础之内部类
JAVA基础之内部类 2017-01-13 1.java中的内部类都有什么?! 成员内部类 局部内部类 匿名内部类 静态内部类 2.内部类详解 •成员内部类 在一个类的内部再创建一个类,成为内部类 1 ...
- 黑马程序员——JAVA基础之内部类,匿名内部类
------- android培训.java培训.期待与您交流! ---------- 内部类 将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类). 内部类访问特点: • 内部 ...
- Java系列之内部类
今天温习一下 Java 中的内部类,内部类一般有如下几种:静态内部类.成员内部类.匿名内部类和方法内部类,下文中将主要介绍静态内部类和成员内部类,主要内容如下: 概述 静态内部类 成员内部类 匿名内部 ...
- JAVA面向对象-----成员内部类的访问方式
成员内部类的访问方式 1.内部类可以直接访问外部类的成员属性.(孙悟空相当于内部类飞到牛魔王的肚子里面去). 2.外部类需要访问内部类的成员属性时需要创建内部类的对象. 1.在外部类的成员函数中创建内 ...
- java学习面向对象之内部类
什么是面向对象内部类呢?所谓的内部类,即从字面意义上来理解的话,就是把类放到类当中. 那么内部类都有什么特点呢? 1.内部类可以访问包裹他的类的成员. 2.如果包裹他的类想访问被其包裹的类的话就得实例 ...
- Java学习之内部类
示例1: package com.swust.面向对象; class Person1{ private String username="zhangsan"; public Per ...
- java面向对象--包及访问控制符
多人开发同一个项目时,会出现类名称相同的情况.package就是为了避免类或接口名称重复而采用的一种措施.实际上包就是有一定层次结构的文件夹,*.class文件要保存当前类声明的和包对应的文件夹中. ...
- java面向对象5--内部类
6内部类 内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同. 内部类可以是静态static的,也可用public,default,protected和private修饰.(而外部顶级类 ...
随机推荐
- EXT.net 窗体传值
ext.net 窗体传值 EXT.net 窗体传值 子窗体代码 protected void btnClose_Click(object sender,EventArges e) { PageCont ...
- leetcode554
public class Solution { public int LeastBricks(IList<IList<int>> wall) { ) { ; } ; Dicti ...
- Cannot+use+T4+templates+inside+a+.NET+Core+project,NetCore2.0无法使用T4模板解决方法
Cannot+use+T4+templates+inside+a+.NET+Core+project,NetCore2.0无法使用T4模板解决方法 请见:https://csharp.wekeepco ...
- Python基本数据类型--列表、元组、字典、集合
一.Python基本数据类型--列表(List) 1.定义:[ ]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素. 2.列表的创建: # 方式一 list1 = ['name','ag ...
- java Web jsp页面的静态包含和动态包含
现在有头 体 尾 三个jsp页面 top.jsp <%@ page language="java" contentType="text/html; charset= ...
- Java对象的强、软、弱和虚引用
本文介绍Java对象的强.软.弱和虚引用的概念.应用及其在UML中的表示. 1.Java对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象 ...
- HashMap和HashSet的相同点和不同点
Map集合,就是有一对属性值的集合,属性包含key,和value.关键字key是唯一不重复的.Map是一个有序的集合,所以查询起来速度很快.而HashSet就像是把HashMap中value去掉,说白 ...
- git获取网上的项目
这里是从coding.net上下载项目至本地phpstorm并配置好相关环境. 这里url地址正是项目路径.获取的地方是: 下面那个url直接复制粘贴. 自己选择一个目录,然后clone. 下面便是前 ...
- 【转】LVS负载均衡之session解决方案 持久连接
原文地址:http://minux.blog.51cto.com/8994862/1744761 1. 持久连接是什么? 1.1 在LVS中,持久连接是为了用来保证当来自同一个用户的请求时能够定位到同 ...
- shell chmod中数字与字母的含义
数字与字母的组合是chmod命令赋予文件,目录访问权限的方式 访问权限:可读,可写,可执行 字母表示:r , w , x 数字表示:4 , 2 , 1 , ...