- 面向对象内容的三条主线:
-
Java类及类的成员:(重点)属性、方法、构造器;(熟悉)代码块、内部类
-
面向对象的特征:封装、继承、多态、(抽象)
-
其他关键字的使用:this、super、package、import、static、final、interface、abstract等
- 面向过程编程(POP) vs 面向对象编程(OOP)
2.1 简单的语言描述二者的区别
面向过程:
- 以
函数为组织单位。 - 是一种“
执行者思维”,适合解决简单问题。扩展能力差、后期维护难度较大。
面向对象:
- 以
类为组织单位。每种事物都具备自己的属性和行为/功能。 - 是一种“
设计者思维”,适合解决复杂问题。代码扩展性强、可维护性高。
2.2 二者关系:
我们千万不要把面向过程和面向对象对立起来。他们是相辅相成的。面向对象离不开面向过程!
面向对象编程的两个核心概念:类(Class)、对象(Object)
谈谈对这两个概念的理解?
类:具有相同特征的事物的抽象描述,是抽象的、概念上的定义。
对象:实际存在的该类事物的每个个体,是具体的,因而也称为实例(instance)。
- 类的声明与使用
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:创建类,并设计类的内部成员(属性、方法)
步骤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();
}
}