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

java基础学习(十八)

文章目录

  • 4-7 面向对象特征之一:封装与隐藏
    • 封装和隐藏的概念
    • 信息的封装和隐藏
    • 四种访问权限修饰符
  • 4-8 类的成员之三:构造器(或构造方法)
    • 构造器的概念
    • 构造器的语法格式
    • 构造器类型
  • 4-8总结:属性赋值过程
    • 属性赋值过程
    • JavaBean

4-7 面向对象特征之一:封装与隐藏

封装和隐藏的概念

  • 封装的作用和含义
  • 我们程序设计追求“高内聚,低耦合”。
  • 隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提
    高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露
    的暴露出来。这就是封装性的设计思想。

例题

class Animal {public int legs;public void eat(){System.out.println("Eating");
}public void move(){System.out.println("Moving.");}
}
public class Zoo {public static void main(String args[]) {Animal xb = new Animal();xb.legs = 4;System.out.println(xb.legs);xb.eat();xb.move();}
}

信息的封装和隐藏

  • 我们将类的属性私有化(private),同事,提供公共(public)方法来获取(getxxx)设置(setxxx)此属性的值

  • 拓展:封装性的体现 @如上 @不对外暴露的私有的方法 @单例模式 …

    1. 隐藏一个类中不需要对外提供的实现细节
    2. 使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作
    3. 便于修改,增强代码的可维护性

四种访问权限修饰符

  • Java权限修饰符public、protected、(缺省)、private置于类的成员定义前,用来限定对象对该类成员的访问权限。
  • 对于class的权限修饰只可以用public和default(缺省)。
    1. public类可以在任意地方被访问。
    2. default类只可以被同一个包内部的类访问。
修饰符类内部同一个包不同包的子类同一个工程
privateyes
缺省yesyes
protectedyesyesyes
publicyesyesyesyes

4-8 类的成员之三:构造器(或构造方法)

构造器的概念

  • 构造器的特征
    1. 它具有与类相同的名称
    2. 它不声明返回值类型。(与声明为void不同)
    3. 不能被static、final、synchronized、abstract、native修饰,不能有return语句返回值
  • 构造器的作用:创建对象;给对象进行初始化
    1. 如:Order o = new Order(); Person p = new Person(“Peter”,15);
  • 说明:
    1. 如果没有显示的定义类的构造器的话,则系统默认提供一个空参的构造器
    2. 定义构造器的格式:权限修饰符 类名(形参列表){}
    3. 一个类中定义的多个构造器,彼此构成重载
    4. 一旦我们显示了定义了类的构造器之后,系统就不在提供了默认的空参构造器
    5. 一个类中,至少有一个构造器

构造器的语法格式

  • 语法格式:

    修饰符 类名 (参数列表) {
    初始化语句;
    }

  • 例题

class Person{//属性String name;int age;//构造器public Person(){System.out.println("Person().....");}public Person(String n,int a){name=n;age=a;}//方法public void eat(){System.out.println("人吃饭");}public void study(){System.out.println("人可以学习");}
}

构造器类型

  • 根据参数不同,构造器可以分为如下两类:
    1. 隐式无参构造器(系统默认提供)
    2. 显式定义一个或多个构造器(无参、有参)
  • 注 意:
    1. Java语言中,每个类都至少有一个构造器
    2. 默认构造器的修饰符与所属类的修饰符一致
    3. 一旦显式定义了构造器,则系统不再提供默认构造器
    4. 一个类可以创建多个重载的构造器
    5. 父类的构造器不可被子类继承

4-8总结:属性赋值过程

属性赋值过程

  • 赋值的位置
    1. 默认初始化
    2. 显式初始化
    3. 构造器中初始化
    4. 通过“对象.属性“或“对象.方法”的方式赋值
  • 赋值的先后顺序
    ① - ② - ③ - ④

JavaBean

  • JavaBean是一种Java语言写成的可重用组件。
  • 所谓javaBean,是指符合如下标准的Java类:
    1. 类是公共的
    2. 有一个无参的公共的构造器
    3. 有属性,且有对应的get、set方法
  • 例题
public class Employee {private int id;private String name;public Employee(){}public  void setId(int i){id=i;}public int getId(){return id;}public void setName(String n){name=n;}public String getName(){return name;}
}
http://www.xdnf.cn/news/683569.html

相关文章:

  • 大模型微调(面经总结)
  • 代码风格指南
  • 聚焦北京央美备考画室:探寻实力之巅
  • 码蹄集——圆周率II、三个非负整数
  • PCB设计自检表
  • 基于心理健康与数字行为数据的多维度分析
  • JAVA运算符详解
  • Oracle向PG转移建议以及注意点
  • 57页 @《人工智能生命体 新启点》中國龍 原创连载
  • IvorySQL 核心技术解读:双 Parser 架构如何定义数据库兼容性?
  • python训练营打卡第36天
  • 竞赛小算法总结(二):gcdlcm,拓展欧几里得线性同余,逆元(含代码详解)
  • AE的ai图层导到Ai
  • spring4第2课-ioc控制反转-依赖注入,是为了解决耦合问题
  • WIN10 安装dify ollama搭建工作流agent
  • 两种主流检索技术:BM25(基于关键词匹配)和向量相似度检索
  • LVGL(Flex布局)
  • Docker修改镜像存放位置
  • qiankun 子应用怎样通过 props拿到子应用【注册之后挂载之前】主应用中发生变更的数据
  • vue2轮播图组件
  • 计算机网络实验课(二)——抓取网络数据包,并实现根据条件过滤抓取的以太网帧,分析帧结构
  • 如何检查液质联用仪LCMS的真空度
  • 提升前端性能:减少DOM操作
  • 在线项目管理工具对比:Trello、Worktile等20款软件测评
  • Java的Spring Cloud生态中实现SSE(Server-Sent Events)服务端实践
  • YoloV11改进策略:卷积篇-风车卷积-即插即用
  • 代码随想录算法训练营第60期第四十九天打卡
  • day05-常用API(二):Lambda、方法引用详解
  • Python装饰器与异常捕获的高级用法详解
  • 基于 STM32 的农村污水处理控制系统设计与实现