面向对象是Java基础的核心部分

  1. Java面向对象学习的三条主线
  2. 面向过程和面向对象
  3. 类和对象的关系
  4. 类的结构
  5. 用类创建对象
  6. 对象在内存中的情况
  7. 属性对比局部变量
  8. 声明方法
  9. return关键字
  10. 使用方法的注意点
  11. 练习+考试+复习

1,Java面向对象学习的三条主线

以下内容是穿插在之后的学习中并行往前推进的

1. Java类及类的成员:属性、方法、构造器;代码块、内部类

2. 面向对象的三大特征:封装、继承、多态、(抽象)

3. 其他关键字:this、super、static、final、abstract、interface、package、import等

2,面向过程和面向对象

day08-面向对象(上)_java

  • 面向过程注重的是做一件事的过程,先做什么,后做什么,最后做什么
  • 面向对象则注重这件事要由谁来做,这个“谁”不再特定指人,而是这个过程中可以抽象出来的对象
  • 比如球拍击打网球,网球弹飞。以面向对象的角度看,这个过程中将球拍和网球看作是两个对象,球拍有“击打”这个动作,网球有“弹飞”这个动作,这个过程就变成了球拍这个对象对网球调用自己“击打”的这个动作,然后网球调用自己“弹飞”的动作
  • 面向对象的设计思想要高于面向过程,前者的可扩展性、重复利用代码都高于后者

day08-面向对象(上)_类和对象_02

在关于一段过程的描述当中,里面的名词可能会定义成一个类,由它生成的具体对象去完成自己的动作,就形成了这段过程

3,类和对象的关系

day08-面向对象(上)_java_03

  • 如果将“人”这个词看做是一个类,由这个类的定义“创建/实例化”出来的我们每个实实在在的个体,都是“人”这个类的对象。但实际上是先有的人,再有的“人”这个概念,只是将每个个体的共同特征抽离出来形成了“人”这个概念

day08-面向对象(上)_类和对象_04

  • 面向对象编程的重点是类的设计;类的设计就是类成员的设计
  • 描述“人”这一概念时,它有属性和行为,比如身高体重和跑步走路。类比到Java中的类,属性和行为也是描述一个类的基本结构,它们定义了一个类由什么组成,能做些什么动作
package com.atguigu.java;

/*
* 类和对象的使用
* 1,创建类,设计类的成员。最主要的步骤
* 2,创建类对象
* 3,通过对象名.属性/方法的方式使用对象
*
* 如果创建了一个类的多个对象,则每个对象都拥有一套自己的属性值(非static),
* 也意味着修改一个对象的属性a,不会影响另一个对象的属性a的值
*/

public class PersonTest { // 测试类
public static void main(String[] args) {
Person p1 = new Person(); // 创建类的对象/类的实例化
p1.name = "Tom"; // 调用对象属性
p1.isMale = true; // 给对象属性赋值
System.out.println(p1.name); // Tom

p1.eat();
p1.sleep();
p1.talk("Chinese"); // 调用对象方法

Person p2 = new Person(); // 另一个对象
System.out.println(p2.name); // null,属性有默认值
System.out.println(p2.isMale);

Person p3 = p1; // 将p1保存的对象地址赋值给p3,p1和p3都指向同一个对象
System.out.println(p3.name); // Tom
p3.age = 10;
System.out.println(p1.age); // 10
}
}

class Person { // 定义类
// 属性
String name;
int age = 1;
boolean isMale;

// 方法
public void eat() {
System.out.println("人可以吃饭");
}
public void sleep() {
System.out.println("人可以睡觉");
}
public void talk(String langue) {
System.out.println("会说" + langue);
}
}

day08-面向对象(上)_java_05

上面的代码中,对象存在于内存的情况如下

day08-面向对象(上)_java_06