面向对象编程

时间:2021-04-10 22:23:01   收藏:0   阅读:18

1.初识面向对象

面向过程和面向对象比较

面向过程的思想

? 步骤清晰简单,第一步做什么,第二部做什么,面向过程适合处理一些较为简单的问题

面向对象的思想

? 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协作的问题。

总结:

? 对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。

什么是面向对象

? 面向对象编程(Object-Orient Programing, OPP)

? 面向对象的本质:以类的方式组织代码,以对象的方式组织(封装)数据。

抽象

? 怎么样理解抽象,举个例子,一个学生管理系统,里面有学生的姓名,学号,班级,身高,体重等等。我们抽取其中的比如说姓名和学号组成一个类。这是一个对抽象形象的解释。

三大特性

封装:把代码里数据封装起来。

继承:子类可以继承父类的东西。

多态:对同一个方法,不同的事物通过这个方法所得出的结果是不一样的。

? 从认识论的角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象

? 从代码运行的角度考虑是先有类后有对象,类是对象的模板。

1.类与对象

2.方法
定义、调用:!
3.对象的引用
引用类型: 基本类型(8)
对象是通过引用来操作的:栈-->堆

4.属性:字段Field 成员变量
默认初始化:
数字: 0 0.0
char: u0000
boolean: false
引用: null

? 修饰符 属性类型 属性名 = 属性值!

5对象的创建与使用

6.类:
静态的属性 属性
动态的行为 方法

2.类与对象的创建

创建一个Student类:

package com.oop.demo02;

//学生类  (一个类里面只有属性和方法两样东西)
public class Student {

    //属性:字段
    String name; //null
    int age;  // 0

    //方法
    public void study(){
        System.out.println(this.name+"学生在学习");
        //this代表当前这个Student类;
    }

}

实例化对象:

public class Application {
    public static void main(String[] args) {

        //类: 抽象的, 实例化
        //类实例化后会返回一个自己的对象
        //student对象就是一个Student类的具体实例

        Student s1 = new Student();
        Student s2 = new Student();

        s1.name = "张三";
        s1.age = 20;

        System.out.println(s1.name);//张三
        System.out.println(s1.age);//20

        s2.name = "李四";
        s2.age = 19;

        System.out.println(s2.name);//李四
        System.out.println(s2.age);//19
    }
}


3、构造器

4、创建对象内存分析

5、封装

封装重点是对于属性的封装,方法很少用

写一个学生类:

public class Student{
    //属性私有
    private String name;//名字
    private int id; //学号
    private char sex;    //性别
   
    //提供一些可以操作这些属性的方法
    //提供一些public的get、set方法
    
    //get 获得这个数据
    public String getName(){
        return this.name;
    }
    //set 给这个数据设置值
    public void setName(String name){
        this.name=name;
    }
    
}

main方法:

public class Application{
    public static void main(String[] args){
        Student s1=new Student();
        
        s1.setName("张三");
       
        System,out.println(s1.getName());//张三
        //s1.name在这里不能使用了,因为name是private的,如果换成public则可以使用
    }
}

6、继承

super()注意点:

VS this:

7、方法重写

重写都是方法的重写,和属性无关

静态方法和非静态方法区别:

8、多态

9、instanceof和类型转换

1.父类引用指向子类的对象
2.把子类转换为父类,向上转型:
3.把父类转换为子类,向下转型,强制转换
4.方便方法的调用,减少重复的代码!

10、static关键字

11、抽象类

12、接口的定义与实现

13、内部类

原文:https://www.cnblogs.com/ly1372/p/14641611.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!