java——面向对象编程

—————————面向对象的基本概念—————————

  •     有对象
  •    与对象互动

即通过对象的方式,把现实世界映射到计算机模型的一种编程方法。

  • 人——抽象宏观概念——class 即类
  • 具体的人——小明,小红,小军——instance 即实例
现实世界计算机代码Java代码
类 classclass Person{}
小明实例 mingPerson ming=new Person()
小红实例 hongPerson hong=new Person()
小军实例 junPerson jun=new Person()
  • class是对象模板, 定义如何创造实例,即class为一种数据类型
  • instance是对象实例,instance是根据class创建的实例,可创建多个instance,
  • 每个instance类型相同,但各自属性可能不相同。

—————————————————— 1.定义class ——————————————————

class Person{
   public String name;
   public int age;
}

     一个class可以包含多个字段(field),字段用来描述一个类的特征。上面的Person类,我们定义了两个字段,一个是String类型的字段,命名为name,一个是int类型的字段,命名为age。因此,通过class,把一组数据汇集到一个对象上,实现了数据封装。 

  public用来修饰字段,表示这个字段可以被外部访问

     以下为对于书的定义:

 class Book {
    public String name;
    public String author;
    public double price;
}

 —————————————————— 2.创造实例 ——————————————————

  • class只是模板,根据对象模板创造出实例,需要用new()操作符
  • 定义一个引用类型的变量指向实例
Person ming=new Person();

     其中,Person ming是定义Person类型的变量ming,而new Person()是创建Person实例。

  •    一个Java源文件可包含多个类的定义,但只能定义一个public类,
  •    public类名必须与文件名一致。如果要定义多个public类,必须拆到多个Java源文件中。

 ——————————————————  3.方法  ——————————————————

  • 一个class可以包括多个field
class Person {
    public String name;
    public Integer age;
}



Person ming = new Person();
ming.name = "Xiao Ming";
ming.age = -99; // age设置为负数 



直接按上述写法可能破坏封装性,因此需要用private修饰:

class Person {
    private String name;
    private int age;
}


用private封装后不能被直接访问,即以下程序报错:


public class Main {
    public static void main(String[] args) {
        Person ming = new Person();
        ming.name = "Xiao Ming"; // 对字段name赋值
        ming.age = 12; // 对字段age赋值
    }
}

class Person {
    private String name;
    private int age;
}


因此需要使用方法使外部代码间接修改field:


 

3.实现方式

  • 继承
  • 多态

4.Java本身提供的机制

  • package
  • classpath
  • jar

5.Java标准库提供的核心类

  • 字符串
  • 包装类型
  • JavaBean
  • 枚举
  • 常用工具类


版权声明:本文为zyyy456123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。