Java中面向对象的理解与类的实例化

105 阅读2分钟
  1. 面向对象内容的三条主线:
  • Java类及类的成员:(重点)属性、方法、构造器;(熟悉)代码块、内部类

  • 面向对象的特征:封装、继承、多态、(抽象)

  • 其他关键字的使用:this、super、package、import、static、final、interface、abstract等

  1. 面向过程编程(POP) vs 面向对象编程(OOP)
    2.1 简单的语言描述二者的区别

面向过程:

  • 函数为组织单位。
  • 是一种“执行者思维”,适合解决简单问题。扩展能力差、后期维护难度较大。

面向对象:

  • 为组织单位。每种事物都具备自己的属性行为/功能
  • 是一种“设计者思维”,适合解决复杂问题。代码扩展性强、可维护性高。

2.2 二者关系:
我们千万不要把面向过程和面向对象对立起来。他们是相辅相成的。面向对象离不开面向过程!

面向对象编程的两个核心概念:类(Class)、对象(Object)
谈谈对这两个概念的理解?
类:具有相同特征的事物的抽象描述,是抽象的、概念上的定义。
对象:实际存在的该类事物的每个个体,是具体的,因而也称为实例(instance)

  1. 类的声明与使用
    4.1 体会:设计类,其实就是设计类的成员
    class Person{

}

4.2 类的内部成员一、二:

成员之一:属性、成员变量、field(字段、域)
成员之二:(成员)方法、函数、method

4.3 类的实例化
等价描述:类的实例化 <=> 创建类的对象 <=> 创建类的实例
格式:类类型 对象名 = 通过new创建的对象实体
举例:
Phone p1 = new Phone();
Scanner scan = new Scanner(System.in);
String str = new String();

  1. 面向对象完成具体功能的操作的三步流程(非常重要)
    步骤1:创建类,并设计类的内部成员(属性、方法)
    步骤2:创建类的对象。比如:Phone p1 = new Phone();
    步骤3:通过对象,调用其内部声明的属性或方法,完成相关的功能

6.举例

package com.atguigu01.oop;  
  
/**  
* @author 尚硅谷-宋红康  
* @create 16:26  
*/  
public class Phone {  
  
    //属性  
    String name;//品牌  
    double price;//价格  


    //方法  
    public void call(){  
        System.out.println("手机能够拨打电话");  
    }  

    public void sendMessage(String message){  
        System.out.println("发送信息:" + message);  
    }  

    public void playGame(){  
        System.out.println("手机可以玩游戏");  
    }  
  
}
package com.atguigu01.oop;  
  
/**  
* @author 尚硅谷-宋红康  
* @create 16:29  
*/  
public class PhoneTest { //是Phone类的测试类  
    public static void main(String[] args) {  
        //复习:数据类型 变量名 = 变量值  
        // Scanner scann = new Scanner(System.in);  

        //创建Phone的对象  
        Phone p1 = new Phone();  

        //通过Phone的对象,调用其内部声明的属性或方法  
        //格式:"对象.属性" 或 "对象.方法"  
        p1.name = "huawei mate50";  
        p1.price = 6999;  

        System.out.println("name = " + p1.name + ", price = " + p1.price);  

        //调用方法  
        p1.call();  
        p1.sendMessage("有内鬼,终止交易");  
        p1.playGame();  
    }  
}