zoukankan      html  css  js  c++  java
  • 类与对象

    1 面向对象方法的特性
           抽象、封装、继承、多态

    抽象
    • 忽略问题中与当前目标无关的方面
    • 只关注与当前目标有关的方面

    封装
    • 利用抽象数据类型将数据和基于数据的操作封装在一起;
    • 用户只能看到对象的封装界面信息,对象的内部细节对用户是隐蔽的;
    • 封装的目的在于将对象的使用者和设计者分开,使用者不必知道行为实现的细节。

    继承
    • 是指新的类可以获得已有类(称为超类、基类或父类)的属性和行为,称新类为已有类的子类(也称为派生类);
    • 在继承过程中子类继承了超类的特性,包括方法和实例变量;
    • 子类也可修改继承的方法或增加新的方法;
    • 有助于解决软件的可重用性问题,使程序结构清晰,降低了编码和维护的工作量。

    多态
    • 超类及其不同子类的对象可以响应同名的消息,具体的实现方法却
    不同;
    • 主要通过子类对父类方法的覆盖来实现

    2 Java中类声明
    [public] [abstract | final] class 类名称
    [extends 父类名称]
    [implements 接口名称列表]
    {
    数据成员声明及初始化;
    方法声明及方法体;
    }
    <文字>
    • class              ▫ 表明其后声明的是一个类。
    • extends         ▫ 如果所声明的类是从某一父类派生而来,那么,父类的名字应写在extends之后
    • implements   ▫ 如果所声明的类要实现某些接口,那么,接口的名字应写在implements之后
    • public            ▫ 表明此类为公有类
    • abstract         ▫ 指明此类为抽象类
    • final                ▫ 指明此类为终结类

    3 数据成员声明
    • 语法形式
    [public | protected | private]
    [static][ final][transient] [volatile]
    数据类型 变量名1[=变量初值], 变量名2[=变量初值], ... ;
    • 说明
    public、protected、private 为访问控制符。
    static  指明这是一个静态成员变量(类变量)。
    final  指明变量的值不能被修改。
    transient  指明变量是不需要序列化的。
    volatile  指明变量是一个共享变量。

    4 类变量(静态变量)
    用static修饰。在整个类中只有一个值,类初始化的同时就被赋值。
    适用情况
    ▫ 类中所有对象都相同的属性。
    ▫ 经常需要共享的数据。
    ▫ 系统中用到的一些常量值。
    • 引用格式
    <类名 | 实例名>.<类变量名>

    5 可变长参数
    • 可变长参数使用省略号表示,其实质是数组。
    • 例如,“String ... s”表示“String[] s” 。
    • 对于具有可变长参数的方法,传递给可变长参数的实际参数可以是
    零个到多个对象。

    6 包

    • 包是一组类的集合
    • 一个包可以包含若干个类文件,还可包含若干个包

    包的作用:

    • 将相关的源代码文件组织在一起。
    • 类名的空间管理,利用包来划分名字空间可以避免类名冲突。
    • 提供包一级的封装及存取权限。

    包的命名
    • 每个包的名称必须是“独一无二”的。
    • Java中包名使用小写字母表示
     命名方式建议
    将机构的Internet域名反序,作为包名的前导;
    若包名中有任何不可用于标识符的字符,用下划线替代;
    若包名中的任何部分与关键字冲突,后缀下划线;
    若包名中的任何部分以数字或其他不能用作标识符起始的字符开头,
    前缀下划线。

    引入包
    • 为了使用其它包中所提供的类,需要使用import语句引入所需要的
    类。
    • Java编译器为所有程序自动引入包java.lang。

    静态引入
    • 单一引入是指引入某一个指定的静态成员,例如:import static java.lang.Math.PI;

    如果在程序中需要多次使用静态成员,则每次使用都加上类名太繁琐。用静态引入可以解决这一问题。
    • 全体引入是指引入类中所有的静态成员,例如:import static java.lang.Math.*;

    7 编译单元
    • 一个Java源代码文件称为一个编译单元,由三部分组成:
    ▫ 所属包的声明(省略,则属于默认包);
    ▫ Import (引入)包的声明,用于导入外部的类;
    ▫ 类和接口的声明。
    • 一个编译单元中只能有一个public类,该类名与文件名相同,编译
    元中的其他类往往是public类的辅助类,经过编译,每个类都会产一个class文件。

  • 相关阅读:
    is quoted with ["] which must be escaped when used within the value
    QueryDSL与SpringDataJPA复杂查询
    遍历list,同时remove不符合条件的元素
    解决AnnotationTransactionAttributeSource is only available on Java 1.5 and highe
    Windows系统安装MySQL
    sqlyog导sql文件
    myeclipse导入maven项目
    Invalid 'log4jConfigLocation' parameter: class path resource [log4j.xml] cannot be resolved to URL because it does not exist
    Nginx SSL+tomcat集群,取不到https正确协议
    微信开发之通过代理调试本地项目
  • 原文地址:https://www.cnblogs.com/td15980891505/p/6179965.html
Copyright © 2011-2022 走看看