小码笔记9:面向对象-封装

一、类和对象

  • 对象:客观存在的事物皆为对象 万物皆对象
    对象:真实存在的实体
  • :类是对现实生活中一类具有共同属性和行为的事物的抽象
    类的重要性:是Java程序的基本组成单位
  • 面向过程:强调步骤
  • 面向对象:强调对象

1.面向对象四大高级特征

<三大特性就去掉抽象>

  • 抽象
  • 封装
  • 继承
  • 多态

2.类

  • 类的特点

    • 类是对象的数据类型
    • 类是具有相同属性和行为的一组对象的集合
  • 类的组成

    • 属性(成员变量):指事物的特征
    • 行为(成员方法):指事物能执行的操作
  • 类和对象的关系

    • 类是对象的抽象
    • 对象是类的实例化

3.关系图

在这里插入图片描述

二、类的定义<面向对象—抽象>

从众多对象中抽取共同特性

1.步骤

  • 定义类
  • 编写类的成员变量
  • 编写类的成员方法
public class 类名 {
    
    
      // 成员变量
      变量1的数据类型 变量1;
      变量2的数据类型 变量2;// 成员方法
      方法1;
      方法2;}

2.对象的创建和使用

通常一个类不能直接使用,需要创建一个对象才能使用
步骤

  1. 导包 import 包名称.类名称
    IDEA自动导包(未自动导包的话 Alt+Enter手动导包)
    同包不用导包,java.lang包不用导包

  2. 创建对象
    类名 对象名 = new 类名();

  3. 使用:

(static 修饰的成员变量、成员方法直接通过类名.变量名、类名.方法名调用)
 对象名.成员变量
 对象名.成员方法() 

3.成员变量和局部变量

在这里插入图片描述

三、面向对象—封装

封装:将一些细节信息隐藏起来对外界不可见
java中的体现

  • 方法的封装
  • private的封装

1.步骤:

  1. 用private修饰属性的可见性来限制对属性的访问
  2. 创建赋值和取值方法Getter()、Setter()
  3. 在赋值和取值语句中,加入this对属性的存取加以限制
  4. 编写main方法创建对象,调用赋值和取值语句访问属性

2.private关键字

  • private是一个权限修饰符
    可以修饰成员(成员变量和成员方法)
    作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能访问

  • 外界类无法直接访问private修饰的成员,private对外提供一对Getter()、Setter()方法

3.this关键字

解决局部变量隐藏成员变量

  • this修饰的变量用于指代成员变量
    方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
    方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量

4.构造方法

又叫构造器(constructor)
构造方法是一种特殊的方法,是专门用来创建对象的方法。当我们通过关键字new创建对象时,就是在调用构造方法

  1. 作用:

    • 创建对象
    • 完成对对象数据的初始化
  2. 注意事项

    • 构造方法的创建
      没有定义构造方法,系统将给出一个隐式的无参数构造方法
      定义了构造方法,系统将不再提供默认的构造方法

    • 构造方法的重载
      自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法

    • 推荐的使用方式
      一个全参构造方法,一个无参构造方法

  3. 标准类

    • 成员变量
      使用private修饰

    • 构造方法
      提供一个无参构造方法
      提供一个带多个参数的构造方法

    • 成员方法
      提供每一个成员变量对应的setXxx()/getXxx()
      提供一个显示对象信息的show()

    • 创建对象并为其成员变量赋值的两种方式
      无参构造方法创建对象后使用setXxx()赋值
      使用带参构造方法直接创建带有属性值的对象

5.单例模式

单例模式 一种设计模式(用View类举例),主界面对外只提供一个对象

  1. 步骤
  • 只提供一个对象,不让外界调用构造方法,private将构造方法私有化

  • 声明一个方法自己实例化自己
    public static View view = new View();

  • 对外提供getInstance()方法

  • 外界调用View.getInstance(); 目的:解决外加无法创建对象

  1. 对外获取对象的方法getInstance()
1.饿汉式
       private static View v0= new View();
       private View(){
    
        }
       public static View getInstance(){
    
    
                return  v0;
        }
                  
2.懒汉式
      private  static View  v2 =null;
      private View(){
    
       }
      public static View getInstance(){
    
    
               if(v1==null){
    
    
                v1=new View( }
                 return  v2; 
       } 

6.static关键字

  • 使用static修饰的变量,静态变量,叫做类变量,不属于对象自己,而是属于所在的类,在该类所有实例之间是共享的,
    只分配一次空间,并初始化在加载中创建空间,如同成类的属性
    调用 : 类名.变量名

  • 使用static修饰的方法,静态方法,也叫叫做类方法,不属于对象自己,而是属于所在类,作用域类的所有实例对象
    调用 : 类名.方法名
    没用static的是实例方法,调用时必须创建对象通过对象.方法名调用

  • 使用static修饰的方法和变量
    在类加载的过程中就存在 加载过程中在JVM中创建方法区的空间,存在方法区的静态区中,非存在对象中

  • 静态代码块
    static { } 当第一次使用到本类时,该类生命周期内静态代码块执行唯一的一次

猜你喜欢

转载自blog.csdn.net/XIAOMAO1REN/article/details/115104460
今日推荐