`
longgangbai
  • 浏览: 7340111 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于局部内部类和内部类的深度学习(一点问题)

阅读更多
package com.easyway.commons.ispace.dev.lang.objects;


public class JavaClassType {
	
	private int a1;
	public int a2;
	static int a3;
	int v=1;
	
	static int  bs=9;
	
	private B b=new B();
	
	public JavaClassType(int a1,int a2 )
	{
		this.a1=a1;
		this.a2=a2;
	}
	
	protected  int methodA(){
		System.out.println("A:methodA");
		 return a1*a2;
	}
	/**
	 *  一般的内部类(非static类)的内部没有静态属性
	 * @author longgangbai
	 * @date 2010-5-10
	 * @version 1.0
	 * @since JDK6.0
	 */
	class B{
	  public	int b1=a1;
		int b2=a2;
		int b3=a3;
		int v=2;
		
		//
		// int b4=new JavaClassType(3,5).a1;  //备注:这种写法在编译通过运行时报错,
		int b5=methodA();
		
		private   void methodB(){
			System.out.println("B:methodB");
			System.out.println("v="+v);
			System.out.println("this.v="+this.v);
			System.out.println("A.this.v="+JavaClassType.this.v);
		}
		class C{
			public	int b1=a1;
			public void methodC(){
				System.out.println("C:methodC");
				methodA();
				methodB();
			} 
		 }
		
		
		/**
		 * 
		 * 局部内部类(在一个方法中定义的内部类,他的可见范围是当前的方法,局部内部类不能访问修饰符及修饰):
		 * (1)局部内部类和实例内部类一样,可以访问外部类的所有成员
		 * 此外,局部内部类还可以访问所在方法中的final类型的参数和变量。
		 * (2)在局部内部类和实例内部类一样,不能包含静态成员
		 */
		public void methodBC(){
			 final int abc=0;
			  int def=8;
			  class G{
				public   int g0=1;
				 protected  int g1=b1;
				 
				 private M m=new M();
				 //  static int g5; 编译错误 
				 
				  private int g2=a1;
				  int g3=abc;
			      // int g4=def; 编译错误
			      
				  
				  class M{
					  private int m0=0;
					  protected int m1=1;
					  public int m2=4;
				  }
			  }
			  G g=new G();
			  //注意下面的代码访问的私有变量
			  int qq= g.g2;
			  System.out.println("g.m.m0 ="+g.m.m0);
		}
		
		/**
		 * 内部类的继承:内部类的子类(F)的构造中必须创建继承内部类(C)的父类(B)的实例:
		 * 
		 * @author longgangbai
		 * @date 2010-5-10
		 * @version 1.0
		 * @since JDK6.0
		 */
		 class F extends B.C{
			 
			 public F(B b){
				 b.super();
			 }
		 }
		
	}
	
	
	
	
	public static class D{
		int d1=bs;
		int d2=new JavaClassType(7,8).a1;
		
		
		public void methodD(){
			System.out.println("d2="+d2);
		}
		
		public static class E{
			 static int e1=3;
		}
		
	}
	
	public static void main(String[] args) {
		JavaClassType.B b=new JavaClassType(1,2).new B();
		System.out.println("b.b1="+b.b1);
		System.out.println("b.b2="+b.b2);
		System.out.println("b.b3="+b.b3);
		//System.out.println("b.b4="+b.b4);
		System.out.println("b.b5="+b.b5);
		
		JavaClassType jcy=new JavaClassType(1,2);
		
		JavaClassType.B bb=new JavaClassType(3,6).new B();
		//在直接实例内部类的实例的时候,java虚拟机自动使内部类shilling引用它的外部类的实例。
		
		bb.methodB();
		bb.methodBC();
		
		B.C c=b.new C();
		c.methodC();
		
		D d=new D();
		d.methodD();
		
	}

}

 

main输入才结果:

A:methodA
A:methodA
b.b1=1
b.b2=2
b.b3=0
b.b5=2

A:methodA
A:methodA
A:methodA
B:methodB


//this的不同地方的输出的值不同

v=2
this.v=2
A.this.v=1

 

g.m.m0 =0

 


C:methodC
A:methodA
B:methodB
v=2
this.v=2
A.this.v=1
A:methodA
d2=7

 

 

在孙卫琴编著Java开发专家的<<Java面向对象编程>> 电子出版社出版的。

第12章内部类一章中局部内部类的讲解中:

孙卫琴:总结第三条:在局部内部类中定义的内部类也不能被public ,protected,private 这些访问控制修饰符修饰。

但是编译通过,输出结果,是不孙MM著书的错误呢?希望各位网友拍砖!!

 

 

并且在访问时可以访问局部内部类的private的属性,不解?希望知道的给出解释??

 

 public void methodBC(){
    final int abc=0;
     int def=8;
     class G{
    public   int g0=1;
     protected  int g1=b1;
    
     private M m=new M();
     //  static int g5; 编译错误
    
      private int g2=a1;
      int g3=abc;
         // int g4=def; 编译错误
        
     
      class M{
      
private int m0=0;
       protected int m1=1;
       public int m2=4;

      }
     }
     G g=new G();
     //注意下面的代码访问的私有变量
     int qq= g.g2;
     System.out.println("g.m.m0 ="+g.m.m0);
  }

 备注:在局部内部类的内部类中私有方法居然可以访问。实在不解??

分享到:
评论

相关推荐

    深度学习-恶意软件分类.pdf

    然而,随着云计算资源的普及和深度学习框架的优化,这一点变得越来越容易克服。 总的来说,深度学习技术为恶意软件分类提供了新的可能性,特别是对于那些没有足够专家知识的非领域专家而言,它是一个强大的工具。...

    深度学习数学基础之约束优化问题

    在处理这类问题时,理解其背后的基本数学理论对于设计和理解深度学习算法至关重要。 首先,无约束优化问题是最基础的一类问题,它关注的是在没有其他条件限制下,如何找到目标函数的最优值。这类问题通常可以通过...

    matlab,深度学习

    压缩包子文件"DeepLearnToolbox-master"很可能包含了MATLAB深度学习工具箱的源代码或者示例,这对于学习和理解深度学习模型的内部工作原理非常有价值。用户可以通过这个工具箱学习如何定义网络架构、加载数据、训练...

    深度学习神经网络(包含CNN和DEN神经网络;有Matlab案例和工具箱)

    在本资源包中,重点涵盖了两种常见的深度学习模型:卷积神经网络(CNN)和深度置信网络(DEN),同时提供了Matlab的案例和工具箱,帮助初学者和研究者更好地理解和应用这些技术。 卷积神经网络(CNN)是深度学习中...

    深度学习经典教程

    此外,教程可能还会涵盖深度学习框架,如TensorFlow和PyTorch的使用,以及如何解决过拟合、欠拟合等问题。这是一条通往深度学习殿堂的必经之路,对于渴望在AI领域大展拳脚的人来说,这个教程无疑是宝贵的财富。

    深度学习之空洞卷积

    深度学习中的空洞卷积,也称为扩张卷积(Dilated Convolution),是一种在卷积神经网络(CNN)中用于图像处理和分析的技术。空洞卷积技术由Fisher Yu和Vladlen Koltun提出,并在2016年的ICLR(International ...

    三分类的文本情感分析深度学习算法

    在这个项目中,我们采用了一种基于长短期记忆网络(LSTM)的深度学习模型来实现对文本情感的三分类。 LSTM是一种特殊的循环神经网络(RNN),设计用于解决传统RNN在处理长序列数据时可能出现的梯度消失和梯度爆炸...

    基于深度学习的冰箱食材分类研究.pdf

    这篇文章不仅为深度学习在工业界的应用提供了思路和方法,而且对于希望了解如何应用深度学习技术来解决实际问题的研究者和工程师具有很大的参考价值。通过自动化食材图像分类的方法,可以极大地提高冰箱内食材管理的...

    基于深度学习和多尺度编码组合的手背静脉识别.pdf

    基于深度学习和多尺度编码组合的手背静脉识别算法,首先使用下采样和小波分解获取多尺度下的手背静脉图像,然后使用中心对称的局部二值模式(CSLBP)提取图像的特征,再次对提取的特征使用深层模型限制玻尔兹曼机(RBM)...

    基于深度学习的英文文本分类.zip

    总的来说,这个项目“基于深度学习的英文文本分类.zip”涵盖了深度学习在文本分类领域的理论与实践,包括模型选择、数据预处理、模型训练和评估等方面的知识,对于理解深度学习在自然语言处理中的应用具有重要价值。...

    深度学习技术在细胞形态学图像处理中的研究进展.pdf

    深度学习模型能够自动从大量的图像数据中学习特征,而无需手工设计特征提取器,这一点相较于传统机器学习方法有着显著的优势。深度学习技术包括多个层次的神经网络模型,如卷积神经网络(CNN)。 卷积神经网络是由...

    基于深度学习的文本分类聚类工具.zip

    基于深度学习的文本分类聚类工具正是解决这一问题的关键技术之一。本文将深入探讨深度学习在文本分类与聚类中的应用,并围绕"基于深度学习的文本分类聚类工具.zip"这一主题,详细介绍相关知识点。 首先,文本分类是...

    神经网络和深度学习技术解析

    深度学习是人工智能领域的一个重要分支,它主要基于神经网络模型,致力于模拟人脑的神经元工作方式,以解决复杂的数据分析和模式识别问题。本文将深入探讨神经网络和深度学习技术,包括它们的基本原理、重要概念以及...

    深度学习工具包(matlab代码)

    深度学习是人工智能领域的一个重要分支,它通过模拟人脑神经网络的工作原理,处理和学习大量数据,从而实现图像识别、语音识别、自然语言处理等多种复杂任务。本资源提供了一套基于MATLAB的深度学习工具包,包括了...

    深度学习教程6

    深度学习是人工智能领域的一个重要分支,它通过模拟人脑神经网络的工作原理,构建多层的非线性模型,实现对复杂数据的高效处理和学习。本教程“深度学习教程6”将带你深入探讨这一主题,特别是与计算复杂度理论相关...

    深度学习及其在动作行为识别中的进展.pdf

    深度学习的非监督学习算法,如深度信念网络(DBN)和卷积神经网络(CNN),通过逐层预训练和调优,可以有效避免这些问题。 在深度学习的众多模型中,卷积神经网络(CNN)是最具代表性的。CNN通过共享权重的卷积层来...

    机器学习深度学习及计算机视觉入门基础.docx

    通过以上内容可以看出,机器学习、深度学习及计算机视觉是三个紧密相关的领域,它们在理论和实践上都有着广泛的应用。这些领域的知识和技术正在不断推动人工智能的发展,为解决现实生活中的复杂问题提供了强大的工具...

    100篇+深度学习论文合集

    这份“100篇+深度学习论文合集”是一个宝贵的资源库,涵盖了深度学习领域的最新研究和发展。下面将针对深度学习的关键概念、重要模型和技术趋势进行详细的阐述。 首先,深度学习的核心在于多层神经网络结构,这些...

    deeplearning深度学习笔记v5.1.pdf

    除了基本的网络结构外,深度学习还包括了一些优化算法,比如Adam,这是一类自适应的学习率算法,能够在训练过程中根据梯度和历史信息自动调整学习率。Dropout是一种正则化技术,通过在训练过程中随机丢弃一部分神经...

    神经网络深度学习-2020最新资料.rar

    《神经网络深度学习-2020最新资料》是一份包含深度学习领域最新知识的压缩文件,其中重点涵盖了神经网络的多个重要分支和相关技术。本文将深入解析这些主题,帮助读者理解并掌握深度学习的核心概念。 首先,深度...

Global site tag (gtag.js) - Google Analytics