面向对象基础

类的定义

  • 类是Java程序的基本组成单位
  • 类是对现实生活中一类具有共同属性行为的事物的抽象,确定对象将会拥有属性和行为

类的组成:属性行为

属性:在类中通过成员变量来体现(类中方法外的变量)

行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

例:定义手机类

public class Phone {
    //成员变量
    String brand;
    int price;
    
    //成员方法
    public void call() {
        System.out.println("打电话");
    }
    
    public void sendMessage() {
        System.out.println("发短信");
    }
}

对象的使用

创建对象:

  • 格式:类名 对象名 = new 类名();
  • 例:Phone p = new Phone();

使用对象:

使用成员变量

  • 格式:对象名.变量名
  • 例:p. brand

使用成员方法

  • 格式:对象名.方法名()
  • 例:p. call()

注:

由于对象是new出来的,存储在堆内存,堆内存是有默认值的。故类的成员变量未赋值前有默认值

成员变量和局部变量

成员变量:类中方法外的变量

局部变量:方法中的变量

区别 成员变量 局部变量
类中位置不同 类中方法外 方法内或者方法声明上(即形参)
内存中位置不同 堆内存 栈内存
生命周期不同 随着对象的存在而存在,随着对象的消失而消失 随着方法的调用而存在,随着方法的调用完毕而消失
初始化值不同 有默认的初始化值 没有默认的初始化值。必须先定义,赋值,才能使用

private关键字

private关键字

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

针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作

  • 提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
  • 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰

private的使用

一个标准类的编写:

  • 把成员变量用private修饰
  • 提供对应的getXxx()/setXxx()方法

this关键字

this修饰的变量用于指代成员变量

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

this用于解决局部变量隐藏成员变量的问题

this代表所在类对象的引用

  • 方法被哪个对象调用,this就代表哪个对象

封装

封装概述:

是面向对象三大特征之一(封装,继承,多态)
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的

封装原则:

将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供对应的getXxx()/setXxx()方法

封装好处:

通过方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高了代码的复用性

构造方法

构造方法的创建

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

构造方法的重载(Overload)

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

推荐:无论是否使用无参构造方法,都应给出

posted @   我的奇妙之旅  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示