`
Mr_Chunlei
  • 浏览: 29792 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java中内部类的创建四种情况,三种方式,及内部数据访问权限

 
阅读更多

尊重原创,文章原地址:http://blog.csdn.net/chunlei_zhang/article/details/38391847

内部类和外部类的关系,及内部静态类的数据访问权限,声明方式。

第一种,在外部类内部声明使用内部类,内部类的类型为static和非 static类型,内部类数据类型为private,protected,public 类型的访问权限。外部类为非静态声明和权限如下:

package com;

public class Test1 {
	//@author 张春蕾
	private class Name{
		private int i =1;
		public int s = 2;
		protected int m =3;
	}
	public static void main(String[] args){
		Test1 test = new Test1();
		<span style="color:#ff0000;">Test1.Name name = test.new Name();
		System.out.print(name.i);</span>
		System.out.print(name.s);
		System.out.print(name.m);
	}
}
声明方式,而且所有的内部参数不论什么都可以输出。当内部类为静态类时,声明方式会发生变化:

package com;

public class Test1 {
	//@author 张春蕾
	private static class Name{
		private int i =1;
		public int s = 2;
		protected int m =3;
	}
	public static void main(String[] args){
		Test1 test = new Test1();
		<span style="color:#ff0000;">Test1.Name name = new Name();</span>
		System.out.print(name.i);
		System.out.print(name.s);
		System.out.print(name.m);
	}
}
上面的方式都是在Test1的内部进行访问,现在外部的Test2力访问情况为第二种,当内部类为非静态的时候的声明方式:

package com;

public class Test1 {
	//@author 张春蕾
	<span style="color:#33cc00;">protected</span> class Name{
		private int i =1;
		public int s = 2;
		protected int m =3;
	}
	public static void main(String[] args){
		Test2 t = new Test2();
		t.test();
	}
}
class Test2{
	public void test(){
		<span style="color:#009900;">Test1 test = new Test1();
		Test1.Name name = test.new Name();//跟第一种情况一样
		System.out.println(name.m);
		System.out.print(name.s);</span>
	}
}

</pre><p></p><pre>
跟第一种的非静态内部类的声明方式相同,不过不能访问内部静态变量,当内部类为静态时,访问形式:

package com;

public class Test1 {
	//@author 春蕾
	<span style="color:#33cc00;">protected</span> static class Name{
		private int i =1;
		public int s = 2;
		protected int m =3;
	}
	public static void main(String[] args){
		Test2 test2 = new Test2();
		test2.test();
	}
}
class Test2{
	public void test(){
		<span style="color:#009900;">Test1.Name name2 = new Test1.Name();
		System.out.print(name2.m);
		System.out.print(name2.s);</span>
	}
}






分享到:
评论

相关推荐

    理解java中的类的各种权限修饰符

    本文将详细探讨Java中的五种权限修饰符:`public`、`protected`、`default`(也称为包访问权限)、`private`以及`static`修饰类的情况,并通过实例来展示这些修饰符的具体应用。 #### 1. Public - **概述**: - `...

    Java访问权限控制源代码

    首先,Java提供了四种基本的访问权限控制修饰符: 1. **public**:公共访问修饰符,允许任何地方的任何类访问。如果一个类、接口或方法被声明为public,那么它们可以在程序的任何地方被调用。 2. **protected**:...

    java 成员内部类的使用规范

    6. **访问权限**:内部类可以访问外部类的所有成员,包括私有成员,这是其独特的优势,但同时也应谨慎处理,避免数据的不安全暴露。 7. **编译后的独立性**:Java编译后,内部类会被单独编译成`.class`文件,文件名...

    java 访问权限验证

    在Java编程语言中,访问权限控制是至关重要的一个部分,它确保了代码的封装性和安全性。本文将深入探讨Java中的访问权限验证,包括其概念、种类以及如何在实践中应用。 **一、访问权限概述** Java提供了四种不同的...

    java 集合和内部类资料

    1. 成员内部类:在类的主体中定义,与类的其他成员具有相同的权限。 2. 局部内部类:在方法、构造器或块中定义,仅在其定义范围内可见。 3. 匿名内部类:没有名字的内部类,通常用作接口的匿名实现或创建一次性使用...

    Java 干货之深入理解Java内部类(学习资料)

    内部类根据其定义的位置和用途,可以分为四种类型:成员内部类、局部内部类、匿名内部类和静态内部类,每种都有其特定的使用场景和规则。 1. 成员内部类 成员内部类就像是类的成员变量一样,可以被权限修饰符修饰,...

    java内部类应用详解

    总之,Java内部类提供了一种灵活的方式来组织和管理代码,增加了代码的复用性和可读性,同时也让设计模式如策略模式、装饰器模式等在Java中得以轻松实现。理解并熟练运用内部类是提升Java编程能力的关键步骤之一。

    java内部类的作用[文].pdf

    Java内部类,也称为嵌套类,是Java编程语言中的一种独特特性,允许在一个类的内部定义另一个类。这种设计模式提供了多种优势,包括数据隐藏、访问权限控制、多重继承模拟以及方法重载的替代方案。 首先,内部类能够...

    JAVA内部类与异常类实验报告

    内部类可以是静态的或非静态的,它们可以访问外部类的所有成员,包括私有成员,因为它们拥有对外部类的直接访问权限。在实验1中,`School_ly` 类有一个内部类 `InnerNewsPaper`,它代表校内的报纸。`InnerNewsPaper`...

    Java中的访问控制

    在没有指定任何访问修饰符的情况下,类、接口、方法和字段将具有这种默认的访问权限。 通过合理使用这四种访问控制,我们可以控制代码的可见性和访问性,从而实现良好的模块化设计。例如,我们可以把敏感数据设为...

    java权限设计

    3. **访问控制与安全性**:Java的安全模型基于类加载器和访问权限,防止恶意代码对敏感资源的访问。Java安全管理器(Security Manager)负责检查运行时的权限。 4. **Java Security Manager**:这是Java平台的一...

    关于Java访问权限表的一个总结

    在Java编程语言中,访问权限控制是至关重要的,它决定了类、接口、字段以及方法的可见性和可访问性。理解Java的访问权限表对于编写健壮、安全且易于维护的代码至关重要。以下是对这一主题的详细说明: 1. **公共...

    控制器(内部类)

    综上所述,"控制器(内部类)"这一主题涵盖了Java内部类的使用以及在MVC模式下的控制器设计。通过合理地利用内部类,我们可以创建更加灵活、结构清晰的控制器,提高代码的复用性和可读性。在实际项目中,理解并掌握...

    day11【final、权限、内部类】.pdf

    Java中通过不同的访问权限修饰符控制类、变量、方法的可见性: - **public**:公开的,对所有类可见。 - **protected**:受保护的,对同一个包内的类以及其他包中的子类可见。 - **default(无修饰符)**:默认的,...

    Java反射机制,通过对象访问调用类的私有成员或方法

    获取`Class`对象主要有三种方式:使用`Class.forName()`方法,通过类的`.class`属性,或者直接对类实例使用`getClass()`方法。 例如,如果我们有一个名为`Person`的类,我们可以这样做: ```java Class&lt;?&gt; person...

    Java开发小案例之权限控制

    压缩包中的"实例83 访问权限控制"可能包含一个实际的Java程序,演示了如何使用不同访问修饰符创建类、方法和变量,并展示了它们的访问效果。通过运行和分析这个案例,你可以更好地理解Java访问控制的实际应用。 ...

    [Java4Android 26_包和访问权限(二)

    在Java编程语言中,包(Package)和访问权限(Access Control)是两个核心概念,它们对于代码的组织、模块化以及安全控制具有重要意义。在这个主题中,我们将深入探讨这两个概念,以及它们如何在Java中相互作用。 ...

    内部类(专题).doc

    内部类是Java编程中一种特殊的类,它定义在另一个类的内部。这种设计模式使得内部类可以访问外部类的所有成员,包括私有成员(private),并且提供了更好的封装性。内部类分为四种类型:成员内部类、局部内部类、...

    基于java的访问权限控制源代码.zip

    这个压缩包“基于java的访问权限控制源代码.zip”很可能包含了一系列示例,用于演示如何在Java中实现不同级别的访问控制,以便管理类、方法和变量的可见性和可访问性。 在Java中,访问修饰符主要有四种:`public`、...

Global site tag (gtag.js) - Google Analytics