`
zhongyimmx
  • 浏览: 8618 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

张效详java就业培训教程学习笔记(二)

    博客分类:
  • J2SE
阅读更多
lesson3(a上):
    "=="和"equals"的区别:
    用来比较对象的引用变量的值是否相等用"=="
    用来比较对象的内容是否相等用"equals"

    private修饰的成员变量只能被当前类的成员所访问,不能被外部类访问.
    public static void main()不是类的成员,但如果在当前类中定义,也可以访问当前类的用private修饰的成员变量.

    构造方法是创建一个对象时编译器自动调用的方法,用来给对象初始化的.
    如果在类中没有定义构造方法,编译器自动创建一个空的构造方法.
    构造方法也可以重载.

    在方法中用this代表当前方法所属的对象即调用该方法的对象.因为在设计一个方法时并不知道调用这个方法的对象名,所以用this,当然this也可省略.
		class Container{
			Component com;
			public void addComponent(){
				com=new Component(this);
			}
		}
		
		class Component{
			Container c;
			public Component(Container c){
				this.c=c;
			}
		}


    在一个构造方法中调用另一个构造方法时用this,因为构造方法不能直接调用,只能在对象被创建时被编译器调用,在构造方法重载时要调用别的构造方法用this(参数)


lesson3(b下):
    在静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),而不能直接访问类中的非静态成员.这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才能使用,而静态方法在使用前不用创建任何对象.

    静态方法在使用前不能以任何方式引用this和super关键字.与上面的道理一样,因为静态方法在使用前不用创建任何实例对象,当静态方法被调用时,this所引用的对象根本就没有产生.

    main()方法是静态的,因此JVM在执行main()方法时不创建main方法所在的类的实例对象,因而在main()方法中,我们不能直接访问该类中的非静态成员,必须创建该类中的一个实例对象后,才能通过这个对象去访问该类中的非静态成员.

    静态代码块:
	static{

	}


    用来给静态成员变量初始化的,当一个类被装载时只调用一次.

    所谓类的单态设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法.如果我们要让类在一个虚拟机上只能产生一个对象,我们首先将类的构造方法的访问权限设为private,这样就不能用new操作符在类的外部产生类的对象了,但在类的内部仍能够产生类的对象.因为在类的外部开始还无法得类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的.
		
		class Chinese{
			static Chinese objRef=new Chinese();
			private static int count=0;
			private static String country="中国";
			static{
				count=2;
				System.out.println("Static code");
			}
			String name;
			int age;
			public static Chinese getInstance(){
				return objRef;
			}
	
			private Chinese(){
				System.out.println(++count);
			}
			static void sing(){
				System.out.println("啊");
			}
			void singOurCountry(){
				System.out.println("country");
				sing();
			}
	
		}

		class TestChinese{
			public static void main(String args[]){
				Chinese obj1=Chinese.getInstance();
				Chinese obj2=Chinese.getInstance();
				System.out.println(obj1==obj2);
			}
		}



    内部类:----在类中直接定义的内部类

    嵌套类可以直接访问嵌套它的类的成员,包括private成员,但是,嵌套类的成员却不能被嵌套它的类直接访问.

    在内部类对象中保存了一个对外部类对象的引用,当内部类的成员方法中访问某一个变量时,如果在该方法中和内部类中都没有定义过这个变量,内部类中对this的引用会被传递给那个外部类对象的引用.
		class Outer{
			int outer_i=100;
			void test(){
				Inner in=new Inner();
				in.display();
			}
			class Inner{
				void display(){
				System.out.println("Outer_i="+outer_i);
			}
		}
			public static void main(String args[]){
				Outer outer=new Outer();
				outer.test();
			}
		}


    如果用static修饰一个内部类,这个类就相当于是一个外部定义的类,所以static的内部类中可声明static成员,但是,非static的内部类中的成员是不能声明为static的.static的内部类不能再使用外层封装类的非static的成员变量,这个道理不难想象!所以static嵌套类很少使用.

    内部类如何被外部类引用
		class Outer{
			private int size=10;
	
			public class Inner{
				public void doStuff(){
				System.out.println(++size);
				}
		
			}
		}		

		public class TestInner{
			public static void main(String args[]){
				Outer outer=new Outer();
				Outer.Inner inner=outer.new Inner();
				inner.doStuff();
			}
		}

   
    在方法中定义的内部类要访问方法中的局部变量时必须加final修饰该变量.
分享到:
评论

相关推荐

    Java学习笔记学习笔记

    Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...

    java2实用教程学习笔记

    有java2实用教程各章节的学习笔记,和章节的重点以及细节都包括,是一位老师的总结。

    一个java基础项目(学习笔记).zip

    一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目...

    java学习笔记.zip

    java学习笔记java学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记...

    Java 学习笔记Java学习笔记

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。

    JAVA程序设计学习笔记.pdf

    JAVA 程序设计学习笔记 JAVA 程序设计学习笔记是一个详细的学习笔记,涵盖了 JAVA 程序设计的基本概念、语言特征、类库、环境设置、安装等方面的知识点。 1. JAVA 程序设计的基本概念 JAVA 程序设计是一种基于...

    Java基础 学习笔记 Markdownr版

    本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...

    奥莱理 Java 8 Lambdas 学习笔记

    [奥莱理] Java 8 Lambdas 学习笔记 [奥莱理] Java 8 Lambdas 学习笔记 [奥莱理] Java 8 Lambdas 学习笔记 [奥莱理] Java 8 Lambdas 学习笔记 [奥莱理] Java 8 Lambdas 学习笔记 [奥莱理] Java 8 Lambdas 学习笔记 ...

    java学习笔记1

    Java学习笔记1 Java学习笔记1是学习Java过程中的笔记,主要记录了Eclipse开发环境中的快捷键使用、编辑功能、查找和调试等知识点。 Eclipse快捷键 Eclipse中有许多快捷键,掌握这些快捷键可以大大提高开发效率。...

    (完整版)最全的java学习笔记(必看).pdf

    Java学习笔记 Java是一种流行的编程语言,广泛应用于Android应用程序开发、Web应用程序开发、桌面应用程序开发等领域。以下是Java学习笔记的摘要信息: 一、Java技术基础 * 1.1 编程语言:Java是一种面向对象的...

    java学习笔记markdown

    【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...

    韩顺平编写的java学习笔记(全)

    ### 韩顺平编写的Java学习笔记概览 #### Java平台分类与运行机制 - **J2SE(Java 2 Platform, Standard Edition)**: 标准版Java开发平台,适用于桌面应用程序开发。 - **J2EE(Java 2 Platform, Enterprise ...

    Java JDK 7学习笔记 PDF

    Java JDK 7是Java开发工具包的一个重要版本,它的全称是Java Development Kit,是用于构建和运行Java应用程序的关键组件。这个PDF学习笔记是开发者深入理解JDK 7特性和功能的重要参考资料。以下是对Java JDK 7的一些...

    黑马程序员java培训就业班笔记:day05总结JAVA语言

    黑马程序员java培训就业班笔记:day05总结

    JAVA就业班笔记.nyf

    JAVA就业班笔记.nyf

    良葛格java jdk 5.0学习笔记

    良葛格java jdk 5.0学习笔记,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip。

    JAVA就业班笔记【马士兵说】.nyf

    JAVA就业班笔记【马士兵说】.nyf

    Java JDK 7学习笔记.pdf

    Java JDK 7学习笔记 此学习笔记适合初学者完成学习总结,加深理解 Java JDK 7学习笔记 此学习笔记适合初学者完成学习总结,加深理解

    JAVA个人学习笔记

    JAVA学习笔记 JAVA学习笔记是面向对象编程语言的学习笔记,涵盖了JAVA的基本概念、面向对象编程思想、类和对象的概念、实例变量和局部变量的区别、方法的定义和调用、类型转换、精度问题、移位问题、switch语句的...

    java学习笔记 从零开始的老师教程 jave笔记

    java学习笔记 从零开始的老师教程 jave笔记,喜欢学校jave的人

Global site tag (gtag.js) - Google Analytics