第一讲 多态 多态可以理解为事物存在的多种体现形态. 例:动物中猫,狗.猫这个对象对应的类型是猫类型,如:猫 x = new猫(); 同时猫也是动物中的一种,也可以把猫称为动物.动物 y = new猫(); 那么动物就是猫和狗具体事物中抽取出来的父类型.父类型引用指向了子类对象. 一.多态的体现 1.父类的引用指向了自己子类的对象. 2.父类的引用也可以接收自己的子类对象. 如: Animal a = new Cat(); 其中就将父类型的 a 引用指向了子类的对象.…
一般来说,有4中内部类:常规内部类.静态内部类.局部内部类.匿名内部类. 一.常规内部类:常规内部类没有用static修饰且定义在在外部类类体中. 1.常规内部类中的方法可以直接使用外部类的实例变量和实例方法. 2.在常规内部类中可以直接用内部类创建对象 3.代码如下: public class MyOuter { private int x = 100; // 创建内部类 class MyInner { private String y = "Hello!"; public…
Java学习笔记之---内部类 (一)成员内部类 内部类在外部使用时,无法直接实例化,需要借助外部类信息才能实例化 内部类的访问修饰符可以任意,但是访问范围会受到影响 内部类可以直接访问外部类的成员,如果出现重名属性,优先访问内部类中定义的 可以使用外部类.this.成员的方法,访问外部类中同名的信息 外部类访问内部类信息,需要通过内部类实例,无法直接访问 内部类编译后.class文件命名:外部类$内部类.class 实例 public class People { private String…
一.常规内部类 public class Outer { int count; void say(){ count++; System.out.println("我是外部类"); } void walk(){ count++; System.out.println("I am walking....."); } class Inner{ int inner_count; //外部类无法访问到内部类的局部变量 void say(){ walk();//内部类可以直接调…
内部类 可以在一个类的内部定义另一个类这种类成为内部类或嵌套类,比如: class Outer{ … class Inner{ …. } } class Outer1{} // 这个Inner1不是Outer1的内部类,不在Outer1的类体括号内 class Innter1{ …… } Class Outer2{ //Inner2虽然是在Outer2的方法内,但还是在Outer2的类体括号内,是内部类 …… public void test(){ class Inner2{ …. } } }…
背景 这几天重温Java,发现Java在嵌套类型这里提供的特性比较多,结合自身对C#中匿名委托的理解,我大胆的做了一个假设:Java的字节码只支持静态嵌套类,内部类.局部内部类和匿名局部内部类都是编译器提供的语法糖,这个假设目前没法验证(看不懂字节码),本文先来看一下C#是如何为我们提供的这种语法糖. 实验 测试代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; usin…
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 第一次见面 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类. public class OuterClass { private String name ; private int age; public String getName() { return name; } public void set…
一.匿名对象 1.概念 匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. public class Person{ public void eat(){ System.out.println(); } } Person p = new Person();//创建一个普通对象 new Person(); //创建一个匿名对象 2. 匿名对象的特点 l 创建匿名对象直接使用,没有变量名. new Person().eat() //eat方法被一个没有名字的Person…
内部类 形式:把一个类定义在一个类的内部. 分为:成员内部类和匿名内部类重点掌握 a) 成员内部类 b) 静态成员内部类 c) 匿名内部类 d) 局部内部类 (1)成员内部类: Java的语言是面向对象的语言,有一个对象必须先创建类.当你类中的某个属性是你自己特有的,某些行为是属于你这个类特有的.通过成员内部类的方式来创建出这种一次性的属性和方法 成员内部类也会适用于线程的情况下. 代码: 总结: 先创建外部类对象,再通过外部类对象.new 内部类名()的方式创建对象 School school…