Java面向对象

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);//null
System.out.println(stu.sid);//0
System.out.println((int)stu.gender);//0
System.out.println((int)stu.weight);//0.0
System.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值