【Java】步入OOP 面向对象

面向对象编程 OOP Object Oriented Programming

面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
面向对象是相对于面向过程来讲的,面向对象方法,
把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式

面向过程编程 POP Procedure Oriented Programming

是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。

面向对象的几个重要特性

- 封装 Encaosulation 隐藏具体的实现细节,提供一个可访问的途径

- 继承 Inheritic 提高代码可重用性,抽取事物的共性

- 多态 Polymorphism  具体可实现的实例多样化

类和对象的关系?

什么是类? 类是对一类事物的描述,是概念的定义

理解类,对自然事物的归类,所具有的共性,就可归为一类

例如,人,猫,狗,就是对这些实际存在的动物进行归类,这只是笼统的描述,不是具体的实例

就像说吃水果,只是描述,并没有具体指出是什么水果

对象,即描述的具体展现,是实际存在的事物,因此称为实例,

对象由类产生,具有类所描述的一切特性,主要包括特征和行为

特征即是对象的属性,行为即是对象的方法

package cn.dai;

public class Person {
    // 类的主要部分
    
    // 属性 == 字段 == 成员变量 == 域 == field
    int age;
    String name;
    
    // 行为 == 方法 == 成员方法 == 函数 == method == function
    public void walk(){
        System.out.println("行走,散步");
    }
    
    public void talk(){
        System.out.println("交流,谈吐");
    }
}

实例化与调用

package cn.dai;

public class Create {
    public static void main(String[] args) {
        
        // 创建我们定义的类的实例
        
        // 类名 引用名 引用指向 类实例
        Person person = new Person();
        
        // 引用可以访问我们的属性 .引用
        person.name = "张三";
        
        person.age = 22;
        
        // 还可以是我们的方法
        person.talk();
        person.walk();
    }
}

方法/函数的用法

https://www.cnblogs.com/lavender-li/p/5681790.html

package cn.dai;

public class Person {

    // [状态类型][访问级别] 返回类型 方法名称(参数列表) { 方法体 }
    public int summation(int ...args){ // 参数列表,可以是一个或者多个参数,没有类型限制,参数就是要执行方法前必需注入的数据,这里采用了一个可变参数
        
        // 具体执行实现的细节 也就是方法体
        int sum = 0;
        for (int param : args){
            sum += param;
        }
        return sum; // 方法的返回值,定义的int返回类型,所以值也必须是int类型的值,void 表示空,所以可不写return
    }
}

关于new 关键字的解释:

https://blog.csdn.net/yanyuan904/article/details/80022647

- 为对象开辟内存空间。

- 调用类的构造方法。

- 将生成的对象的地址返回。 

https://blog.csdn.net/topdeveloperr/article/details/81194654

构造方法 / 构造器 Constructor

https://blog.csdn.net/qiuzhongweiwei/article/details/78965788

https://blog.csdn.net/zqixiao_09/article/details/50550035

对象 / 实例 instance 的内存解析

成员变量和局部变量的区别?

https://www.cnblogs.com/huangminwen/p/5935130.html

访问修饰级别的解释

https://blog.csdn.net/qq_41174684/article/details/90677921

要注意的一点是,protected是对所继承的子类提供访问

this关键字

https://www.cnblogs.com/zheting/p/7751752.html

final关键字的解释:

https://www.cnblogs.com/dolphin0520/p/3736238.html

static关键字的结束:

https://www.cnblogs.com/dolphin0520/p/10651845.html

对象数组的操作使用

https://blog.csdn.net/lxxiang1/article/details/82320720

匿名对象的介绍

https://blog.csdn.net/lxxiang1/article/details/82085271

重载 Overload

https://www.cnblogs.com/xdp-gacl/p/3637321.html

可变参数

https://blog.csdn.net/lxxiang1/article/details/82312799

递归算法

https://blog.csdn.net/f5465245/article/details/77946468

Import & Package

https://www.cnblogs.com/colintz/p/10088166.html

静态导入

https://www.cnblogs.com/EasonJim/p/7907660.html

猜你喜欢

转载自www.cnblogs.com/mindzone/p/12711888.html