Java-面向对象简记

1 面向对象

1.1 面向对象思想概述

Java是一种面向对象的高级编程语言。
  面向对象:是用代码去高度模拟现实世界的事物,从而让软件为任务处理业务,为人类服务。
  高级语言:代码看起来很像人类的自然语言。

面向对象最重要的两个概念:类和对象。
  类是相同事物共同特征的描述。类只是学术上的一个概念并非真实存在的,只能描述一类事物。
  对象:是真实存在的实例。 实例==对象。
  结论:有了类和对象就可以描述万千世界所有的事物。必须先有类才能有对象。

2 java类

2.1 类中成分

类中的成分:有且仅有五大成分(五大金刚)
  修饰符 class 类名{
    1.成员变量(Field): 描述类或者对象的属性信息的。
    2.成员方法(Method): 描述类或者对象的行为信息的。
    3.构造器(Constructor): 初始化一个对象返回。
    4.代码块
    5.内部类
  }
  类中有且仅有这五种成分,否则代码报错!

2.2 构造器

格式:修饰符 类名(形参列表){

}
作用:初始化类的一个对象返回。
构造器的分类:无参数构造器,有参数构造器。
构造器的注意点:一个类默认自带一个无参数构造器,但是如果写了有参数构造器那么
  默认的无参数构造器就消失了,此时如果还需要用无参数构造器就需要自己从新写一个。
构造器初始化对象的格式:
  类名 对象名称 = new 构造器;
  Student s = new Student();
无参数构造器的作用:初始化一个类的对象(使用对象的默认值初始化)返回。
有参数构造器的作用:初始化一个类的对象(可以在初始化对象的时候为对象赋值)返回。

2.3 this关键字

this关键字代表了当前对象的引用。
this可以出现在方法,构造器中。
this出现在方法中:哪个对象调用这个方法this就代表谁。

1 public void setName(String name) {
2     // 哪个对象调用setName方法,this就代表谁。
3     this.name = name; 
4 }

this可以出现在构造器中:代表构造器正在初始化的那个对象。

1 public Pig(String name, int age) {
2     // this在构造器代表构造器正在初始化的那个对象。
3     this.name = name; 
4     this.age = age; 
5 }

this可以区分变量是访问的成员变量还是局部变量。

2.4 static关键字

Java是通过成员变量是否有static修饰来区分是类的还是属于对象的。

static == 静态 == 修饰的成员(方法和成员变量)属于类本身的。

按照有无static修饰,成员变量和方法可以分为:
  成员变量:
  1.静态成员变量(类变量):
    有static修饰的成员变量称为静态成员变量也叫类变量,属于类本身的,
  直接用类名访问即可。

  2.实例成员变量
    无static修饰的成员变量称为实例成员变量,属于类的每个对象的,
  必须用类的对象来访问。

  成员方法:
  1.静态方法
    有static修饰的成员方法称为静态方法也叫类方法,属于类本身的,
  直接用类名访问即可。

  2.实例方法
    无static修饰的成员方法称为实例方法,
  属于类的每个对象的,必须用类的对象来访问。

小结:
  成员变量有2种
    1.有static修饰的属于类叫静态成员变量,与类一起加载一次,直接用类名调用即可。
    2.无static修饰的属于类的每个对象的叫实例成员变量,
  与类的对象一起加载,对象有多少个,实例成员变量就加载多少份。必须用类的对象调用。

  成员方法有2种:
    1.有static修饰的属于类叫静态方法,直接用类名调用即可。
    2.无static修饰的属于类的每个对象的叫实例方法,必须用类的对象调用。