当前位置: 首页 > news >正文

4. 面向对象程序设计

4. 面向对象程序设计

文章目录

    • 4. 面向对象程序设计
      • 4.1 类的定义
      • 4.2 this关键字
      • 4.3 static关键字
      • 4.4 标准类制作
      • 4.5 访问权限修饰符
      • 4.6 封装

4.1 类的定义

  1. 基本格式

    class Student {
            // 成员变量
            int id;
            String name;
            int age;
    
            // 成员方法
            void goStudy() {
                System.out.println(name + "go to study");
            }
        }
    

4.2 this关键字

  1. this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)

    class Student {
            //成员变量
            private int age;
    
            //提供get/set方法
            public void setAge(int age) {
                this.age = age;
            }
    
            public int getAge() {
                return age;
            }
    
            //成员方法
            public void show() {
                System.out.println("age = " + age);
            }
    }
    

4.3 static关键字

  1. 不需要创建对象可以直接调用其类方法
  2. 访问的是静态变量,不能直接访问实例方法,需要创建对象。
static class CircleArea {
    static double getArea(double r) {
        return Math.PI * r * r;
    }
}
public static void main(String[] args) {
    double circleArea = CircleArea.getArea(3.5);
    System.out.println(circleArea);
}

4.4 标准类制作

  1. 类名需要见名知意

  2. 成员变量使用private修饰

  3. 提供至少两个构造方法

    ​ 无参构造方法

    ​ 带全部参数的构造方法

  4. get和set方法

  5. 提供每一个成员变量对应的setXxx()和getXxx()

class Student {
    //成员变量
    private String name;
    private int age;

    //构造方法
    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    //成员方法
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void show() {
        System.out.println("name = " + name + "," + "age = " + age);
    }
}
/*
    创建对象并为其成员变量赋值的两种方式
        1:无参构造方法创建对象后使用setXxx()赋值
        2:使用带参构造方法直接创建带有属性值的对象
*/
public class StudentDemo {
    public static void main(String[] args) {
        //无参构造方法创建对象后使用setXxx()赋值
        Student s1 = new Student();
        s1.setName("DZJ");
        s1.setAge(18);
        s1.show();

        //使用带参构造方法直接创建带有属性值的对象
        Student s2 = new Student("DZJ",18);
        s2.show();
    }
}

4.5 访问权限修饰符

  1. private
  2. protect
  3. public
  4. package

4.6 封装

  1. 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

  2. 成员变量private,提供对应的getXxx()/setXxx()方法

    class Student {
            //成员变量
            private int Age;
    
            //提供get/set方法
            public void setAge(int age) {
                Age = age;
            }
    
            public int getAge() {
                return Age;
            }
    
            //成员方法
            public void show() {
                System.out.println("Age = " + getAge());
            }
    }
    
http://www.dtcms.com/a/113622.html

相关文章:

  • 分布式事务解决方案全解析:从经典模式到现代实践
  • 每天五分钟深度学习框架pytorch:搭建LSTM完成手写字体识别任务?
  • 深入探索 Linux Top 命令:15 个实用示例
  • python中的sort使用
  • 在 macOS 上安装和配置 Aria2 的详细步骤
  • 【数学建模】(时间序列模型)ARIMA时间序列模型
  • tomcat的web三大组件Sciidea搭建web/maven的tomcat项目
  • grep命令: 过滤
  • 基于STM32与应变片的协作机械臂力反馈控制系统设计与实现----2.2 机械臂控制系统硬件架构设计
  • 自托管本地图像压缩器Mazanoke
  • (三)链式工作流构建——打造智能对话的强大引擎
  • 5天速成ai agent智能体camel-ai之第1天:camel-ai安装和智能体交流消息讲解(附源码,零基础可学习运行)
  • linux专题3-----linux上链接远程mysql
  • 深入理解Python元组:从基础到高级应用
  • xss攻击
  • NDK开发:开发环境
  • 2025-04-05 吴恩达机器学习4——逻辑回归(1):基础入门
  • 华为高斯(GaussDB)数据库中 Range、List、Hash三种分区方式 的完整SQL示例及增删改查操作,并附上总结对比表格
  • Linux内核引导内存分配器原理
  • 金仓数据库KCM认证考试介绍【2025年4月更新】
  • PgVectore的使用
  • REASONING THOUGHT和REASONING分别是什么意思,有什么区别
  • C语言:字符串
  • Baklib企业CMS的核心要素是什么?
  • 贪心算法之最小生成树问题
  • Sentinel实战(五)、系统保护规则、限流后统一处理及sentinel持久化配置
  • 多GPU训练
  • C++_类和对象(上)
  • 【简单数论】(模运算,快速幂,乘法逆元,同余,exgcd,gcd,欧拉函数,质数,欧拉筛,埃式筛,调和级数枚举,约数,组合数)
  • 4.4日欧篮联,NBA全扫盘,雷霆 vs 火箭单关预测已出