Java-类与对象

1,类的定义
  描述实体的抽象概念,属性及行为相似的对象可以归成一个类。
  在软件中,类就是一个模板,它定义了通用于一个特定种类的所有对象的状态(变量)和行为(方法)。类是创建对象的模板,对象是类的实例。

  声明形式:

  [public] [abstract | final] class 类名称  [extends 父类名称]  [implements 接口名称列表]  {

        数据成员声明及初始化;

       方法成员声明及方法体;

    }

  关键字:
    class:表明其后声明的是一个类。
    extends:如果所声明的类是从某一父类派生而来,那么,父类的名字应写在extends之后
    implements:如果所声明的类要实现某些接口,那么,接口的名字应写在implements之后
  类修饰符:可以有多个,用来限定类的使用方式
    public:表明此类为公有类
    abstract:指明此类为抽象类
    final:指明此类为终结类 
  类声明体
    数据成员声明及初始化
      可以有多个
    方法成员声明及方法体
      可以有多个
  数据成员
    表示Java类的状态
    声明数据成员必须给出变量名及其所属的类型,同时还可以指定其他特性
    在一个类中成员变量名是唯一的
    数据成员的类型可以是Java中任意的数据类型(基本类型,类,接口,数组)
  方法成员

  定义类的行为
    一个对象能够做的事情
    我们能够从一个对象取得的信息
    可以没有,也可以有多个;
    分为实例方法和类方法(静态方法)
 
类成员的访问控制:

  public:这些成员能被所有的类访问
  protected:这些成员只能被类本身,派生类或者同一个包下的类访问。
  private:这些成员除了类本身外任何类不允许访问。
  default:不加任何访问控制保留字,这些成员只能被类本身或同一个包下的类访问。
 
2,类的特殊成员

  构造方法:构造方法的名字和类名相同,并且没有返回值(连void都不允许)。构造方法主要用于为类的对象定义初始化状态。我们不能直接调用构造方法,必须通过new关键字来自动调用,从而创建类的实例。Java的类都要求有构造方法,如果没有定义构造方法,Java编译器会为我们提供一个缺省的构造方法,也就是不带参数的构造方法。

  静态数据成员:静态成员以static关键字修饰,如:

        Class Person{
            staticint name;

            public static void getName(){……};

         }

  静态方法和静态变量是属于某一个类,而不属于类的对象,不管对象有多少,静态成员在内存中只存在一份拷贝,所有对象共享同一份静态成员。
  静态方法和静态变量的引用可以直接通过类名引用,而不需要经过类的实例化。如:Person.name; Person.getName();
  在静态方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以。
 
  final数据成员:final数据成员类似于C++中的const数据,以及C中宏定义。final数据成员一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变,但引用变量所指向的对象中的内容还是可以改变的。
 
  final方法成员:派生类只能从父类继承final方法,但是不能覆盖该final方法。当一个方法提供的功能已经满足要求,不需要再进行扩展,或者不想被子类覆盖时,可以将方法声明为final。
 

  抽象方法和抽象类

    在类中没有方法体的方法,就是抽象方法。
    含有抽象方法的类,即为抽象类。
    如果一个子类没有实现抽象基类中所有的抽象方法,则子类也成为一个抽象类。
    我们可以将一个没有任何抽象方法的类声明为abstract,避免由这个类产生任何的对象。
    

构造方法、静态方法、私有方法、final方法不能被声明为抽象的方法

  

原文地址:https://www.cnblogs.com/lzhat/p/4311143.html