zoukankan      html  css  js  c++  java
  • Core Java笔记 1.对象与类

    本章重点:

    • 面向对象程序设计
    • 使用现有Java类
    • 自定义类

    面向对象程序设计

    面向对象核心概念:
    class
    instance(instance fields, method, constructor)

    面向对象的三个特征:

    1. encapsulation
    2. inheritance
    3. polymorphism

    类之间的关系:

    • 依赖(uses-a): 减少类之间耦合。
    • 聚合(has-a)
    • 继承(is-a)

    使用现有类

    构造器、new关键字、getter/setter(accessor/mutator method)


    自定义类

    最简单的类定义形式

    class ClassName {
        constructor1
        constructor2
        ...
        method1
        method2
        ...
        field1
        field2
    }
    

    多个源文件的使用

    Employee.java、EmployeeTest.java。EmpolyeeTest.java依赖Employee.java:javac EmployeeTest.java 即可。

    原理:java编译器发现EmployeeTest.java使用了Employee类时会查找Employee.class的文件,如果没有找到这个文件或者Employee.java比Employee.class新,就会自动搜索Employee.java,然后对它编译。

    简要剖析java类:

    1. java访问权限: public、protected、private、default
    2. java constructor
    3. 方法的implicit参数和explicit参数(this就是implicit参数)
    4. private fields && accessor, mutator
      基于类的访问权限:方法可以访问所属类的私有特征(包括private fields和private methods)
    5. final
      通常final应用于类的primitive or immutable class(不可变类)类型的fields。比如: String就是一个immutable class, 而Date就不是immutable class

    static

    静态域: private static int nextId = 1;
    静态常量: private static final int PI = 3.14;
    静态方法: Math.pow(x, a);

    静态方法有一个常见的用途:Factory方法

    NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
    NumberFormat percentFormatter = NumberFormat.getPercentInstance();
    String currency = currencyFormatter.format(0.1);
    String percent = currencyFormatter.format(0.1);
    

    Factory方法的两个原因:

    1. 无法命名构造器.
    2. 当使用构造器时,无法改变所构造的对象类型,而Factory方法可以返回该类的子类实例.

    对象构造

    1. overloading. Java允许重载任何方法,包括构造器.
    2. 默认构造器. 如果一个类没有一个显式构造器,系统会生成一个默认构造器,所有的实例域会被设置成默认值,最好不要使用默认构造器.
    3. 域显式初始化.
    4. 调用另一个构造器(this(...)).
    5. java可以在三个地方初始化fields:构造器、声明中、初始化块(initialization block).

    初始化对象域的步骤:

    1. 所有数据域被初始化默认值(0, false, null).
    2. 按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块.
    3. 如果构造器第一行调用了第二个构造器,则执行第二个构造器主体.
    4. 执行这个构造器的主体.

    类设计技巧

    1. 一定将数据设计为private.
    2. 一定要对数据初始化.
    3. 将职能过多的类进行拆分.
    4. 类名和方法名能够体现它们的职责.
  • 相关阅读:
    OSI,TCP/IP,五层协议的体系结构,以及各层协议
    linux及安全期中总结——20135227黄晓妍
    linux及安全《Linux内核设计与实现》第四章——20135227黄晓妍
    linux及安全《Linux内核设计与实现》第三章——20135227黄晓妍
    linux及安全第八周总结——20135227黄晓妍
    linux及安全第七周总结——20135227黄晓妍
    linux及安全第六周总结——20135227黄晓妍
    linux及安全第五周总结——20135227黄晓妍
    linux及安全第四周总结——20135227黄晓妍
    linux及安全《Linux内核设计与实现》第二章——20135227黄晓妍
  • 原文地址:https://www.cnblogs.com/nil2inf/p/4469160.html
Copyright © 2011-2022 走看看