zoukankan      html  css  js  c++  java
  • C功底挑战Java菜鸟入门概念干货(二)

    (接上篇博文:C功底挑战Java菜鸟入门概念干货(一))

    一、Java面向对象程序设计-类的基本形式

    1、“类”是把事物的数据与相关的功能封装在一起,形成的一种特殊结构,用以表达对真实世界的一种抽象概念。 
    2、Java 把数据成员称为 field(属性),把方法成员称为 method(方法)。 
    3、由类所创建的对象称为 instance,译为“实例”。 
    4、创建属于某类的对象,可通过下面两个步骤来达成:

    (1)、声明指向“由类所创建的对象”的变量。

    (2)、利用 new 创建新的对象,并指派给步骤一中所创建的变量。 
    5、要访问到对象里的某个属性(field)时,可通过“对象名称.属性”语法来实现,如果要调用封装在类里的方法,则可通过“对象名称.method”语法来实现。 
    6、有些方法不必传递任何数据给调用端程序,因此是没有返回值的。若方法本身没有返回值,则必须在方法定义语句前面加上关键字 void。 
    7、私有成员(private member)可限定类中的属性,被限制成私有的属性仅能供同一类内的方法所访问。 
    8、类外部可访问到类内部的公有成员(public member)。 
    9、“封装”(encapsulation):是把属性和方法包装在一个类内以限定成员的访问,以起到保护数据的作用。 
    10、构造方法可视为一种特殊的方法,它的主要作用是为所创建的对象赋初值。 
    11、构造方法的名称必须与其所属的类的类名称相同,且不能有返回值。 
    12、从某一构造方法内调用另一构造方法,是通过 this()  这个关键字来完成的。 
    13、构造方法有 public 与 private 之分。声明为 public 的构造方法可以在程序的任何地方被调用,所以新创建的对象都可以自动调用它。而被声明为 private 的则无法在该构造方法所在的类以外的其它地方被调用。
    14、如果构造方法省略不写,Java 则会自动调用默认的构造方法(默认的构造方法没有任何参数)。 
    15、“基本类型的变量”是指用 int、double 等关键字所声明的变量,而由类声明而得的变量,称之为“类类型的变量”,它是属于“非基本类型的变量”的一种。 
    16、对象也可以用数组来存放,但必须有下面两个步骤:

    (1)、声明类类型的数组变量,并用 new 分配内存空间给数组。

    (2)、用 new 产生新的对象,并分配内存空 间给它。 

    17、如果在类 Outer 的内部再定义一个类 Inner,此时类 Inner 称为内部类(inner class),而类 Outer 则称为外部类(outer class)。

    二、Java面向对象程序设计-类的继承

    1、通过 extends 关键字,可将父类的成员(包含数据成员与方法)继承到子类。 
    2、Java 在执行子类的构造方法之前,会先调用父类中无参的构造方法,其目的是为了对继承自父类的成员做初始化的操作。 
    3、父类有数个构造方法时,如要调用特定的构造方法,则可在子类的构造方法中,通过 super()这个关键字来完成。 
    4、this()是在同一类内调用其它的构造方法,而 super()则是从子类的构造方法调用其父类的构造方法。 
    5、this()除了可用来调用同一类内的其它构造方法之外,如果同一类内“实例变量”与局部(local)变量的名称相同时,也可利用它来调用同一类内的“实例变量”。 
    6、this()与 super()其相似之处:

    (1)当构造方法有重载时,两者均会根据所给予的参数的类型与个数,正确地执行相对应的构造方法。

    (2)两者均必须编写在构造方法内的第一行,也正是这个原因,this()与 super()无法同时存在同一个构造方法内。 
    7、“重载”(overloading),它是指在相同类内,定义名称相同,但参数个数或类型不同的方法,因此 Java 便可依据参数的个数或类型调用相应的方法。 
    8、“复写”(overriding),它是在子类当中,定义名称、参数个数与类型均与父类相同的方法,用以复写父类里的方法。 
    9、如果父类的方法不希望子类的方法来复写它,可在父类的方法之前加上“final”关键字,如此该方法便不会被复写。 
    10、final 的另一个功用是把它加在数据成员变量前面,如此该变量就变成了一个常量(constant),如此便无法在程序代码中再做修改了。 
    11、所有的类均继承自 Object 类。 
    12、复写 Object 类中的 equals() method 可用来比较两个类的对象是否相等。 
    13、Java 可以创建抽象类,专门用来当做父类。抽象类的作用类似于“模板”,其目的是依据其格式来修改并创建新的类。 
    14、抽象类的方法可分为两种:一种是一般的方法,另一种是以abstract关键字开头的“抽象方法”。“抽象方法”并没有定义方法体,而是要保留给由抽象类派生出的新类来定义。 
    15、利用父类的变量数组来访问子类的内容的较好的做法是: 

    (1)先创建父类的变量数组; 
    (2)利用数组元素创建子类的对象,并以它来访问子类的内容。 
    16、抽象类不能直接用来产生对象。 
    17、接口的结构和抽象类非常相似,它也具有数据成员与抽象method,但它与抽象类有两点不同:

    (1)、接口的数据成员必须初始化。

    (2)、接口里的方法必须全部都声明成 abstract。 
    18、利用接口的特性来打造一个新的类,称为接口的实现(implementation)。 
    19、Java并不允许多重继承。 
    20、接口与一般类一样,均可通过扩展的技术来派生出新的接口。原来的接口称为基本接口或父接口;派生出的接口成为派生接口或子接口。通过这种机制,派生接口不仅可以保留父接口的成员,同时也可以加入新的成员以满足实际的需要。 
    21、Java对象的多态性分为:向上转型(自动)、向下转型(强制)。 
    22、通过instanceof 关键字,可以判断对象属于那个类。 
    23、匿名内部类(anonymous inner class)的好处是可利用内部类创建不具有名称的对象,并利用它访问到类里的成员。

    (待续见下片博文:C功底挑战Java菜鸟入门概念干货(三))

  • 相关阅读:
    86. Partition List
    2. Add Two Numbers
    55. Jump Game
    70. Climbing Stairs
    53. Maximum Subarray
    64. Minimum Path Sum
    122. Best Time to Buy and Sell Stock II
    以场景为中心的产品设计方法
    那些产品经理犯过最大的错
    Axure教程:如何使用动态面板?动态面板功能详解
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3293828.html
Copyright © 2011-2022 走看看