Java面向对象

来源:互联网 发布:淘宝价格法违规投诉 编辑:程序博客网 时间:2024/05/29 23:47

java 面向对象

对象

对象:软件中被管理的实体/个体,如:一个员工,一个格子,一个飞机,一个僵尸,一个植物,都是对象。

对象:由一组数据组成。其中每个数据称为:对象的属性。

类:用于定义对象的数据结构。用于声明一组数据,将一组数据的声明“重用”!

提示:根据对象的特点设计类的数据结构,也就是根据对象设计类,这种设计编程的方式称为 面向对象编程

简单的说:类是对象的模板

案例:

//根据员工信息设计了员工类:/* * 类,用于创建对象的模板,定义了对象的结构 * 定义了对象(一组数据)的结构 * 仅仅是“结构”的定义,并没有具体的数据。 */class Emp{    String name;    int age;    char gender;    double salary;}//根据学生对象的信息设计学生类class Student{    int sid;    String name;    char gender;    boolean married;    double weight;}//根据俄罗斯方块的格子对象设计了格子类/* * 俄罗斯方块中的小格子 * 没有小格子都是由一组3个数据组成 * row 格子的行 * col 格子的列 * color 格子的颜色 * 重要:类是对象的数据结构, 不是具体数据 */class Cell{    int row;//行    int col;// Column 列    int color; //颜色(RGB)}

new 运算

new 用于创建对象

  1. 根据类中声明的属性分配对象的存储空间
    • 在内存堆中分配对象的存储空间
    • 按照对象的属性分配存储空间
  2. 所有对象的属性,有默认的值
    • byte short int long: 0
    • float double: 0.0
    • boolean: false
    • char: \0
    • 引用类型: null

案例:

class Student{    int sid;    String name;    char gender;    boolean married;    double weight;}Student stu = new Student();System.out.println(stu.name);//nullSystem.out.println(stu.sid);//0System.out.println((int)stu.gender);//0System.out.println((int)stu.weight);//0.0System.out.println((int)stu.married);//false

对象的内存管理

这里写图片描述

注意:类中定义的变量称为类的成员变量,成员变量在对象中初始化,是对象的数据称为对象的属性。

案例:

public class Demo02 {    public static void main(String[] args) {        /**         * 俄罗斯方块中的小格子         */        Cell c1 = new Cell();        Cell c2 = new Cell();        c1.row = 6;        c1.col = 3;        System.out.println(c1.row);//6    }}class Cell{    int row;//行    int col;// Column 列    int color; //颜色(RGB)}

成员变量

成员变量:是在类中定义的变量称为类的成员变量,而成员变量是在创建对象时候分配为对象的属性。 成员变量对象属性 是同一回事!

静态成员现象,在static章节详细讲解。

方法

在类中可以为对象声明方法,用于封装复杂的对象功能算法,方法被全体对象共享复用,调用这些方法就可以复用代码,提高编程效率。

调用方法:

变量.方法() 

案例:

public class Demo04 {    public static void main(String[] args) {        Cell1 c = new Cell1();        c.row = 6;        c.drop();//调用格子下落的方法        System.out.println(c.row); //7        c.moveRight();//调用格子右移动方法        System.out.println(c.col);//1        c.moveLeft(); //调用格子左移动方法        System.out.println(c.col);//0    }}class Cell1{    int row;    int col;    public void drop(){        row++;    }    public void moveRight(){        col++;    }    public void moveLeft(){        col--;    }}

引用类型变量

使用 作为类型声明的变量,称为引用类型变量,引用类型变量的值是对象的地址值,引用变量通过对象的地址引用了对象。

注意:应用类型变量的直接值是地址值,间接引用了对象。引用变量的值不是对象!!!

引用变量值可以赋值为null,表示不引用任何的对象。

null和NullPointerException

当引用变量的值是 null时,访问了其属性(元素)、方法,将出现空指针异常。

引起空指针异常的条件有两个:引用值为null 和 访问了属性(元素)和方法。

如何解决空指针异常:
1. 将引用变量合理的赋值,使其引用对象
2. 避免调用null值引用的属性和方法

案例:

Cell1 c2 = null;int n = c2.row;//出现空指针异常

解决1:

Cell1 c2 = new Cell();int n = c2.row;

解决2:

Cell1 c2 = null;if(c2!=null){    int n = c2.row;}
0 0