深入Java面向对象编程

深入Java面向对象编程 第一章:类和对象

类的定义 类是一个模板,用于创建同一类型的对象  面向对象编程的基本元素是类,类确定了对象的形式 和行为

使用关键字new创建对象 Person p; p = new Person(); 第二种方式 Person p = new Person();

无参数的构造方法 构造方法的名称与类名一样,且构造方法没有返回值  当类中已经创建了构造方法时,编译器就不再为类自 动创建构造方法  编译器自动创建的构造方法为空方法,当然,我们自 定义构造方法时,可以更加灵活的运用 public class Dog { String name; Dog(){ System.out.println("构造方法被调用."); name = "旺财"; }

this关键字 this 关键字的含义: 可以为调用了其方法的那个对象 生成相应的句柄。也就是说,哪个对象调用了方法, 那么这个方法内的this指的就是哪个对象

static关键字 如果一个成员被声明为static,它就能够在它的类的 任何对象创建之前被访问,而不必引用任何对象  static成员的最常见的例子是main(),因为在程序开 始执行时必须调用main(),所以它被声明为static  声明为static的方法有以下几条限制: ◦ 它们仅能调用其他的static方法。 ◦ 它们只能访问static数据。 ◦ 它们不能以任何方式引用this或super 第二章:继承与多态 什么是继承(关键字extends) 继承:继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的 功能,但不能选择性地继承父类。通过使用继承可以提高代码复用性。继承是多态的前提。 方法覆盖与方法重载 重载和重写的区别,重载既可以发生于一个类, 也可以发生于子类与父类之间(子类继承父类方法, 同时完成方法重载),而重写,则只能是子类重写父 类方法 多态 多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。 this和super关键字的区别 this表示当前对象: this.属性 区别成员变量和局部变量 this.() 调用本类的某个方法 this() 表示调用本类构造方法,只能用在构造方法的第一行语句。 this关键字只能出现在非static修饰的代码中

super表示父类对象: super.属性 表示父类对象中的成员变量 super.方法()表示父类对象中定义的方法 super() 表示调用父类构造方法 可以指定参数,比如super("Tom",23); 任何一个构造方法的第一行默认是super(); 可以写上,如果未写,会隐式调用super(); super()只能在构造方法的第一行使用。 this()和super()都只能在构造的第一行出现,所以只能选择其一。 写了this()就不会隐式调用super()。 Object类 Object 是类层次结构 的根类,每个类都使用 Object 作为超类。所以,每 个类都具有Object类所定义的特征 final关键字 final修饰类,则类不能被继承,修饰方法,则方法不能被重写,如果修饰属性的话,那么这个属性的值是不能被修改的 总结 Object是Java中所有其他类的父类 使用extends关键字可继承父类产生一个新的子类 子类可以拥有与父类同名,但功能不同的方法,即覆盖父类方法 子类可通过super关键字获得父类的方法 Final关键字可以限定对象、变量、方法、类,使他们不能被修改

经验分享 程序员 微信小程序 职场和发展