面向对象(oop)基础篇

面向对象基础

1. 面向对象基础概念

面向过程

是一种看待问题、解决问题的思维方式。着眼点在于问题是如何一步步的解决的,然后亲力亲为的去解决这个问题

面向对象

是一种看待问题、解决问题的思维方式。着眼点在于找到一个能够帮助解决问题的实体,然后委托这个实体去解决问题

把大象装冰箱:

面向过程:

1、打开冰箱门 --> 我

2、把大象装进去 --> 我

3、关上冰箱门 --> 我

面向对象:

1、打开冰箱门 --> 冰箱

2、把大象装进去 --> 大象

3、关上冰箱门 --> 冰箱

小明要组装一台电脑:

面向过程:

1、小明走到电脑城 --> 小明

2、购买各种零配件 --> 小明

3、将买到的零配件带回家 --> 小明

4、组装起来,开机 --> 小明

面向对象:

1、委托一个朋友去电脑城买电脑

2、委托一个快递把电脑送回来

3、委托朋友组装起来

Java是一种面向对象的编程语言:

使用Java可以更加容易的写出来具有面向对象编程思想的代码。

使用面向对象编程语言写出的代码一定是面向对象的代码吗?

不一定!

对象

一个具有特殊的行为(功能),可以帮助解决问题的实体。

是若干个具有相同的特征和行为的对象的集合。

类和对象的关系

类是若干个对象的集合,对象是类中的个体。

2. 类的设计和对象的实例化

在程序设计中,一定是先有的类,再有的对象。

1、类的设计

[访问权限修饰符] [其他的修饰符] class 类名 {
    // 类体
    // 1. 这个类所有的对象共有的特征
    //    在程序中的体现,就是一个全局变量,这个全局变量称为 -- 属性
    // 2. 这个类所有的对象共有的行为
    //    在程序中的体现,就是一个方法
}

2、对象的实例化

找出一个类中的实体。

Person xiaoming = new Person();
3. 类中的成员访问

类成员:组成一个类的属性、方法...

点语法:点可以理解为 "的"

static: 可以用来修饰属性、方法。被static修饰的成员叫做静态成员。

被static修饰的属性 --> 静态属性

被static修饰的方法 --> 静态方法

没有被static修饰的属性 --> 非静态属性、实例属性

没有被static修饰的方法 --> 非静态方法、实例方法

静态的成员是属于类的。

静态的属性,没有在堆上开辟空间。在方法区中开辟空间。静态的属性空间的开辟是发生在类第一次被加载到内存中的时候。是属于类的,是需要用类来访问的。

结论

1、静态成员用类访问、非静态成员用对象访问

2、非静态的方法中,可以直接访问当前类中的静态和非静态的成员

3、静态方法中,只能访问静态的成员,不能访问非静态的成员

NullPointerException

在成员访问的时候,非常容易遇到的一个异常。空指针异常。

出现的原因:

引用数据类型的默认值是null,而如果使用一个null去执行任何的引用操作,都会触发NullPointerException

你可能感兴趣的:(面向对象(oop)基础篇)