Java SE之基础篇——面向对象

Posted 一计之长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java SE之基础篇——面向对象相关的知识,希望对你有一定的参考价值。

前言

  上一篇文章给大家介绍了在java中,通过idea中的DeBug工具来调试我们的程序。并且通过九个经典的问题供大家练习我们之前学的java基础知识,之后在介绍判断两个数组相同案例的时候给大家留了两个问题供大家思考。最后通过思维导图帮助大家回顾整篇文章介绍的相关知识,慢慢地培养读者java的整体架构,让读者将java的基础知识融会贯通,各个知识点之间可以相互调用。本文给大家介绍面向对象的相关知识。相信大家在大学的时候一定都学过C语言,我们的C语言就是面向过程的,而我们现在的Java语言就是典型的面向对象的编程语言。首先给大家介绍面向过程与面向对象的区别

一、面向过程VS.面向对象

  首先 ​面向对象​​ (Object Oriented,OO) 的思想对软件开发相当重要,它的概念和应用甚至已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD 技术、人工智能等领域。面向对象是一种 对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。而 ​面向过程​ (Procedure Oriented) 是一种 以过程为中心 的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是 封装、继承、类。

  其次是编程思想以及各自的优势不同:

  面向过程:是一种以过程为中心的编程思想。都是以什么正在发生为主要目标进行编程。其特点为就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。不支持丰富的“面向对象”特性(比如继承、多态),并且不允许混合持久化状态和域逻辑。

   面向对象:是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。在内部被表示为一个指向一组属性的指针。任何对这个对象的操作都会经过这个指针操作对象的属性和方法。

二、类和对象

1、类和对象的理解

类,顾名思义,即为客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。在java中,类是对现实生活中一类具有共同属性和行为的事物的抽象。类是对象的数据类型,类是具有相同属性和行为的一组对象的集合。其实也可以将其简单的理解为类就是对现实事物的一种描述。
  类的组成包括属性(指事物的特征,例如:手机事物(品牌,价格,尺寸))以及行为(指事物能执行的操作,例如:手机事物(打电话,发短信))。

  类与对象的关系为:类是对现实生活中一类具有共同属性和行为的事物的抽象,而对象是能够看得到摸的着的真实存在的实体,当然,也可以简单的理解为类是对事物的一种描述,对象则为具体存在的事物

2、类的定义

  前面我们也介绍了,类是由属性和行为两部分组成的。当然属性(​​类中方法外的变量​​)在类中通过成员变量(​​和前面的方法相比去掉static关键字即可​​)来体现,而行为是在类中通过成员方法来体现。接下来我们介绍定义一个类的详细步骤:

  • ①、定义类
  • ②、编写类的成员变量
  • ③、编写类的成员方法

  具体的格式如下:

public class 类名 
// 成员变量
变量1的数据类型 变量1;
变量2的数据类型 变量2;

// 成员方法
方法1;
方法2;

  相应的示例如下:

public class Phone 
//成员变量
String brand;
int price;

//成员方法
public void call()
System.out.println("打电话");


public void sendMessage()
System.out.println("发短信");

  这里需要我们注意的是:类定义之后我们是无法直接运行的,这点还请大家特别注意。我们定义好类之后就是通过对象对我们定义好的类进行使用了。

3、对象的使用

  创建对象的格式:​​类名 对象名 = new 类名();​调用成员的格式:​​对象名.成员变量、对象名.成员方法();​​具体调用的示例如下:

public class PhoneDemo 
public static void main(String[] args)
//创建对象
Phone p = new Phone();

//使用成员变量
System.out.println(p.brand);
System.out.println(p.price);

p.brand = "小米";
p.price = 2999;

System.out.println(p.brand);
System.out.println(p.price);

//使用成员方法
p.call();
p.sendMessage();

  具体我们运行的结果如下:

Java

  以上就是对我们定义好的类进行使用的一个过程,从上面示例可以得出:我们只有在对象使用的时候才可以运行出我们想要的结果,这点还需要我们特别掌握。

4、综合案例

  我们为了让大家更好的巩固该知识点,再通过一个相对综合的小案例帮助大家理解,具体需求如下:

  首先定义一个学生类,然后定义一个学生测试类,在学生测试类中通过对象完成成员变量和成员方法的使用

  首先我们定义一个​​Student类​​,然后里面主要包括的成员变量:姓名,年龄…;而成员方法包括学习,做作业…。最后我们定义一个​​StudentDemo类​​进行相应的测试。

  根据其分析我们首先创建Student的类,具体实现如下:

/*
学生类
*/
public class Student
//成员变量
String name;
int age;

//成员方法
public void study()
System.out.println("好好学习,天天向上");


public void doHomework()
System.out.println("键盘敲烂,月薪过万");

  然后我们创建相应的测试类,具体实现如下:

public class StudentDemo 
public static void main(String[] args)
//创建对象
Student s = new Student();

//使用对象
System.out.println(s.name + "," + s.age);

s.name = "林青霞";
s.age = 30;

System.out.println(s.name + "," + s.age);

s.study();
s.doHomework();

  具体的执行结果如下:

Java

三、对象内存图

  在介绍对象内存图之前首先给出测试用例,我们的学生类用java实现如下:

/*
学生类
*/
public class Student
//成员变量
String name;
int age;

//成员方法
public void study()
System.out.println("好好学习");


public void doHomework()
System.out.println("多做练习");

  首先我们分析单个对象的内存调用情况,其测试类代码用实现如下;

/*
单个对象
*/
public class StudentTest01
public static void main(String[] args)
//创建对象
Student s = new Student();
System.out.println(s);

//使用成员变量
System.out.println(s.name + "," + s.age);

s.name = "张曼玉";
s.age = 28;

System.out.println(s.name + "," + s.age);

//使用成员方法
s.study();
s.doHomework();

  其执行结果如下:

Java

  接着我们通过一张图来理解成员变量使用过程:

Java

  成员方法调用过程如下:

Java

  接着我们分析的是多个对象内存图,同样给出其测试代码,具体实现如下:

/*
多个对象
*/
public class StudentTest02
public static void main(String[] args)
//创建第一个对象并使用
Student s1 = new Student();

s1.name = "林青霞";
s1.age = 30;
System.out.println(s1.name + "," + s1.age);

s1.study();
s1.doHomework();

Java SE之基础篇——ArrayList类详解

JAVA SE基础篇52.装饰流之数据流对象流和打印流

Java基础知识总结

JAVA SE基础篇38.异常机制和运行时异常

一脚踩进java之基础篇12——面向对象

Dart语法篇之面向对象基础