面向对象基础 - 课件

导入

这是红岩Android第二次课的课件,主要讲解面向对象基础。

为什么要面向对象

早期的计算机编程基于面向过程的思维方法,它往往思考问题是步进的。例如计算 $1+1=2$ ,还有之前写输出 金字塔 的题目,都仅需要分析逻辑、计算,思考如何用代码实现。而随着科技和社会的发展,计算机被用于处理越来越复杂的问题,如编写一个手机APP,设计一个大型游戏。对程序员来说,仍然使用面向过程的思维方式就显得极其无力。

前人给出的答案是:使用面向对象。

什么是面向对象

面向对象的思想,是你不直接分析问题如何解决,而是将问题作为一个整体,一个系统来考虑,你要制作这一整个完整的系统,然后让它自己解决问题。

所以,面向对象的分析在于抽象的分析系统,面向对象的设计在于对应系统的实现,用非常接近书面表达的字符将代码表达出来。将问题抽象成各种对象的组合,用对象的观点看问题,这更加接近人类的自然思维,一但习惯这种编程思想,开发起来就会得心应手呼风唤雨。

什么是对象

我们先从面向对象的 对象 入手,什么是对象?答:万物皆对象。现实世界中的任何事物,都可以被称为是对象。

猫 狗 人赢

什么是类

有那么多的对象,要如何统一管理呢,所以我们需要

那么什么是类?它为什么能统一对象?答:类是对对象的抽象。它将对象特有的属性和行为方式进行抽象,提取,并整合。这样,就实现了统一管理对象。

猫 狗 人类

总结

OOP

JAVA 实现

定义

普通
1
2
3
class Human{

}
大佬
1
2
3
4
5
public class Human extends Homo implements Thinkable,Talkable,Loveable{
private class HumanBody extends Body{

}
}

变量

重点是作用域

局部变量
1
2
3
4
5
6
7
8
9
public class Main{
public static void main(String[] args){
String hello = "Helloooooo~";
String name = "Hosigus";
for (int i = 0; i < name.length(); i++) {
System.out.println(hello);
}
}
}
成员变量
1
2
3
4
5
class Cat{
String name;
int age;
Sex sex;
}

方法

成员方法
1
2
3
4
5
6
7
class Cat{
String mMiaow = "miaow";

public void greet(){
System.out.println(mMiaow);
}
}
构造方法
1
2
3
4
5
6
7
8
9
10
11
class Cat{
String mMiaow;

public Cat(String miaow){
mMiaow=miaow;
}

public void greet(){
System.out.println(mMiaow);
}
}
重载
1
2
3
4
5
6
7
8
9
class Calculator{
...
public int add(int x, int y) {
return x + y;
}
public int add(int x, int y, int z) {
return x + y + z;
}
}

对象

实例化/创建对象

实例化/创建对象:new Cat();

声明:Cat bastet;

赋值:bastet = new Cat();

正常:Cat bastet = new Cat();

使用

System.out.println(bastet.mMiaow);

bastet.greet();

Java中 package 就类似于文件夹的概念,主要用于将功能相近的类放在同一个包中,这也就是分类,好的分类能极大程度的方便你的查找与使用。

package com.hosigus.xxx

访问权限修饰符

什么是访问权限修饰符

修饰符是用于限定类型以及类型成员的声明的一种符号。

这样说可能很抽象,难以理解,简单来讲,就是用来设置限定哪些东西你可以访问哪些不能访问的权限限制工具

比如群管理员有权限设置禁言,普通群成员就没有权限取消禁言

为什么需要访问修饰符

权限的分配和设定就像法律一样,没有法律就无法保证和谐

修饰符 in Java

Java中有四种访问修饰符

访问权限 子类 其他包
public
protect ×
default × ×
private × × ×

封装

什么是封装

this

当成员变量和局部变量的名字相同的时候,Java会优先使用局部变量,而成员变量会被隐藏。这时如果需要使用成员变量,this 就派上用场了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class Cat{
private Sex sex;
private String name;
private int age;

Cat(Sex sex){
this.sex = sex;
}

Cat(Sex sex, String name){
this.sex = sex;
this.name = name;
}

public Sex getSex(){
return sex;
}

public void setName(String name){
this.name = name;
}

public String getName(){
return name;
}

public void setAge(int age){
this.age = age;
}

public int getAge(){
return age;
}
}

static

万物皆对象,那么类是对象吗?

1
2
3
4
5
6
7
8
public class Human{
public static boolean isFree = true;
public static boolean isCooCooCoo = true;

public static void repeat(String str){
System.out.println(str);
}
}

传参

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Tool{
public static void swap(int x, int y){
int temp = x;
x = y;
y = temp;
}

public static void swap(Cat x, Cat y){
Cat temp = x;
x = y;
y = temp;
}
}

Github

廖雪峰Git教程

常用类

Scanner

StringBuilder

Math

文章目录
  1. 1. 导入
    1. 1.1. 为什么要面向对象
    2. 1.2. 什么是面向对象
      1. 1.2.1. 什么是对象
      2. 1.2.2. 什么是类
      3. 1.2.3. 总结
  2. 2. JAVA 实现
    1. 2.1.
      1. 2.1.1. 定义
        1. 2.1.1.1. 普通
        2. 2.1.1.2. 大佬
      2. 2.1.2. 变量
        1. 2.1.2.1. 局部变量
        2. 2.1.2.2. 成员变量
      3. 2.1.3. 方法
        1. 2.1.3.1. 成员方法
        2. 2.1.3.2. 构造方法
        3. 2.1.3.3. 重载
    2. 2.2. 对象
      1. 2.2.1. 实例化/创建对象
      2. 2.2.2. 使用
    3. 2.3.
    4. 2.4. 访问权限修饰符
      1. 2.4.1. 什么是访问权限修饰符
      2. 2.4.2. 为什么需要访问修饰符
      3. 2.4.3. 修饰符 in Java
    5. 2.5. 封装
      1. 2.5.1. 什么是封装
    6. 2.6. this
    7. 2.7. static
    8. 2.8. 传参
    9. 2.9. Github
    10. 2.10. 常用类
      1. 2.10.1. Scanner
      2. 2.10.2. StringBuilder
      3. 2.10.3. Math