`
zhongyimmx
  • 浏览: 8667 次
  • 性别: 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学习笔记(必看).pdf

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

    java学习笔记1

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

    java学习笔记markdown

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

    Java JDK 7学习笔记 PDF

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

    《java学习》-java学习笔记.zip

    这份《java学习》笔记包含了多个核心主题,旨在帮助初学者和有经验的开发者深入理解和掌握Java技术。 1. **正则表达式(正则.md)**: 正则表达式在Java中用于文本匹配和搜索,是处理字符串的强大工具。Java提供了...

    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学习笔记(全)

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

    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