面向对象(OOP)

本文主要介绍了面向对象编程的核心概念,包括面向对象与过程的异同、类与对象的定义、如何自定义类、构造器的使用、this关键字、static关键字的理解以及封装的重要性和实现方式。通过实例分析了类、对象、构造器以及封装在Java编程中的应用。
摘要由CSDN通过智能技术生成

面向对象(OOP)

1.什么是面向对象

实际开发过程中,我们总是通过对象帮助我们解决问题,所以面对对象的核心本质:

找到合适的对象,帮助我们完成具体的业务.

找到合适的对象----->分析业务

搞一个合适的对象出来------->完成业务

Java在编写业务时候,采用的方式:通过对象解决.

对象就是一个个能够帮助我们解决问题的实体.Java中引用类型就是对象实例

  • 对象是什么?

    ​ 类:分类/类型/类别/人类/鸟类.抽象的名字.对于具备相同外形的、相同功能的一类事物的统称。类就是对于对象的抽象(抽取对象像的部分)。

    ​ 对象:啄木鸟、黄鹂鸟等等这些就是对象。对象就是类的具象化表现形式。是能够真正帮助我们做事的。

1.1面向对象和过程的异同:

相同点:都是一种思想,思维方式,思考问题的角度.都是对软件分析设计和开发的一种思想

  • 面向过程:"关注我该如何实现?"分析步骤,然后一步步实现;
  • 面向对象:“关注我该找谁实现” 这个’谁’就是对象,而对象如何实现不关注;

面向对象分别为面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程
(OOP)(object-oriented Analysis Design Programming )

项目 面向过程procedure-oriented 面向对象object-oriented
区别 事物比较简单,可用线性思维去解决 事物比较复杂,用简单线性思维无法解决
共同点 解决实际问题的一种思维方式 解决实际问题的一种思维方式,都是代码组织的方式
共同点 二者相辅相成,并不对立,具体到微观操作,仍然要用面向过程的方式来处理 解决复杂问题,通过面向对象,能从宏观上把握事物之间负责的关系,方便分析整个系统;

1.2优点

  1. 将复杂的问题简单化
  2. 更符合生活中人们思考问题的角度
  3. 面向过程更贴合执行者的思维方式,面向对象更贴合管理者的思维方式

2类与对象的概念

2.1面向对象思维方式进行编程:

为了将程序和现实生活紧密联系,提出2个概念:

  • ​ 类:一系列对象的共性---->图纸|模板

  • ​ 对象:用来描述现实生活中真实存在的事物------>实例

    ​ 先定义类,然后根据类创建对象

    对象和类的关系

    • 特殊到一般,具体到抽象
    • 类可看成一类对象的模板,对象可看成该类的一个具体实例.
    • 类描述同一类对象的一个抽象概念,类中定义这一类对象具有的静态动态属性
    • JDK有提供很多类,编程人员也可定义自己的类

2.2如何自定义类:

自定义类

定义类(类的组成)

  • 属性 field

    • **定义该类或该类对象包含的数据(静态特征),**作用范围是整个类体.

    • 属性定义格式

      //[修饰符] 属性类型 属性名 = [默认值];
      public class Person{
             
          String name = "张三";
          int age = 18;
          boolean gender = false;
      }
      
  • 方法 (功能) method

    • 方法用于定义该类或者该类实例的行为特征和功能实现,方法是从属于类和对象的.

    • 方法定义格式

      public class Person{
             
      //成员变量
      	String name;
      //成员方法
      	public void study(){
             
      		System.out.pringln("一个人正在学习...")
      	}
      }
      
  • 构造器 constructor

    package com.shyjx.oobtest;
    public class Student {
         
        //属性(成员变量)
        int age;
        String name;
        boolean gender;
        //方法
        void study(){
         
            String i = gender?"男":"女";
            System.out.println("一个"+age+"岁的"+i+"学生"+name+"正在学习...");
        }
        //构造方法,是空构造器
        Student(){
         }
    }
    
    //测试类
    package com.shyjx.oobtest;
    //同包下的类不需要导包
    public class Stud_Test {
        public static void main(String[] args) {
        Student st = new Student();//创建引用对象
        st.name = "卡卡";//使用功能
        st.age = 38;
        st.gender = true;
        st.study();
        }
    }
    
  • else:局部代码块|普通语句块 静态块 成员代码块|构造块 同步块 内部类

  • 测试类

    • 1.导包 : 指定要使用的类型的位置    
              不需要导包的类 :        
              1.java.lang包下的类        2.同包下的类
      2.创建引用类型的对象 : new关键字就是创建对象使用的
                  引用数据类型 引用名|变量名 = new 引用数据类型();
      3.使用对象的属性|功能
                  引用.属性名字
                  引用.功能名字(实参)
      注意 : 成员(成员变量|成员方法)是属于对象的,需要跟随对象进行属性
               成员变量只声明不赋值存在默认值  整数:0   小数:0.0   
               布尔 : false   字符:空字符   引用:null 
      注意 : 方法的返回值类型可以任意类型,包括自定义的引用数据类型(实体类型) 
      注意 :
              方法的形参的数据类型可以为自定义的引用数据类型(实体类)
      
  • 工具类

  • 实体类|javabean|模板类|图纸类

成员变量

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值