类与对象(一)

类和对象之间的关系

  • 类是对象的设计图,对象是类的实体
  • 类是对象的模板,对象是类的实例

设计的基本步骤

  • 发现类,根据对象去发现类
  • 找出属性(名词),根据对象的共同属性
  • 找出行为(动词),根据对象的共同行为

定义类

public class Actor{
    /*共有属性*/
    public String name;
    public int age;
    public char sex;
    public String job;

    /*共有行为(方法)*/
    public void eat(){}
    public void performs(){}
}

创建对象(即创建类的对象)

/*声明并实例化对象*/
类名称 对象名称 = new 类名称();//new为分配空间使用

实例化产生对象后可以进行类的操作:
对象.属性:调用类中的属性
对象.方法():调用类中的方法
  • 使用自己定义的类型,也需要声明该类型变量。
  • 任何变量必须赋初值才能使用
  • 调用对象的方法,并由变量接收方法的返回值,方法返回某类型,接收也是某类型

构造方法

  • 当使用new创建某类对象时,实际要调用该类的构造方法,主要用来初始化对象属性
  • java把对象初始化的工作放在构造方法中,当对象被创建时,构造方法被自动执行

关于构造方法

  • 没有返回值类型
  • 方法名和类名一样
  • 可以指定参数及实现重载
  • 注意隐式构造和参数化构造不能共存

this关键字

Java中this可以完成三件事:

  • 表示本类属性,this.属性
  • 表示本类方法,this();表示调用本类的构造方法
  • 当前对象

this调用本类构造方法时需要注意问题

  • 所有构造方法是在对象实例化时被默认调用的,而且是在调用普通方法前调用,所以使用this()调用构造方法的操作,一定要放在构造方法首行
  • 一个类中存在多个构造方法的话,并且这些构造方法都使用了this()互相调用,那么至少要保留一个构造方法没有调用其他构造,以作为程序的出口

封装的概念与使用

封装的概念

封装是将类的状态信息隐藏在类内部,不允许外部程序直接访问,而通过该类提供的方法来实现对隐藏信息的操作和访问
封装的具体步骤:

  • 修改属性的可见性来限制对属性的访问
  • 为每一个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的存取
  • 在赋值方法中,加入对属性的存取控制语句

封装的使用

封装时用到的多个权限控制符来修饰成员变量和方法:

  • private:具有类可见性,成员变量和方法只能在其定义的类中访问
  • 默认:具有包可见性,成员变量和方法只能被同一个包里的类访问
  • protected:可以被同一个包中的类访问,被同一个项目中不同包中的子类访问
  • public:具有项目可见性,可以被同一个项目中所有的类访问,是最大的访问权限

Original: https://www.cnblogs.com/Zhouge6/p/12190016.html
Author: 笔架山Code
Title: 类与对象(一)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573670/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 有道词典翻译功能数字有时无法翻译出来解决方案

    阅文时长 | 0.03分钟字数统计 | 62.4字符主要内容 | 1、引言&背景 2、解决方案 3、声明与参考资料『有道词典翻译功能数字有时无法翻译出来解决方案』 编写人 …

    Java 2023年6月5日
    0181
  • java基础-集合

    以下为本人的学习笔记 1.集合框架概述 1.1集合框架 的作用 在实际开发中,我们经常会对一组相同类型的数据进行统一管理操作。到目前为止,我们可以使用数组结构,链表结构,二叉树来实…

    Java 2023年6月15日
    0103
  • 双色球系统开发

    Java对彩票双色球系统开发的简单实现 双色球系统 案例: 中奖条件及奖金表 代码及解释 main方法代码: public static void main(String[] ar…

    Java 2023年6月6日
    087
  • 算法设计与分析———分治算法

    一、分治法的设计思想 分治法将一个难以直接解决的大问题划分为一些规模较小的子问题,分别求解各个子问题,再合并子问题的解得到原问题的解。 分治法的典型情况 二、分治法的求解过程 一般…

    Java 2023年6月5日
    093
  • 《算法很美》视频笔记

    网址: 《算法很美》视频 数据结构可视化 《算法很美》 《算法很美》 第一章 位运算 位运算基础 题解 P1:找出唯一成对的数 问题描述: 思路分析: 代码实现: 问题思考: P2…

    Java 2023年6月16日
    061
  • 小数点的几种精确方法

    小数点的几种精确方法 1.直接用格式化输出String.format() double b=123.4; System.out.println(String.format(&quo…

    Java 2023年6月5日
    077
  • mybatis plus mysql 代码生成器 示例demo

    添加依赖 mysql mysql-connector-java 5.1.46 com.alibaba druid-spring-boot-starter 1.1.10 com.ba…

    Java 2023年6月9日
    087
  • 操作无权限的MSMQ队列

    首先,我们重现一个这样的”死”队列。在消息队列的管理器中新建一个队列(私有或公有均可),命名为test。右键单击该队列,选择Properties,然后进入S…

    Java 2023年5月30日
    068
  • 数据结构与算法之分治策略

    用循环计算两个数字的乘积 用循环解决这个问题只能是类似于小学乘法个位与个位相乘,个位与十位相乘。十位与个位相乘,十位与十位相乘。此算法的时间复杂度为O(n^2) public st…

    Java 2023年6月8日
    0103
  • 开发中为什么要使用Redis缓存

    用缓存,主要有两个用途: 高性能、 高并发: 高并发:mysql单机支撑到2000QPS 就开始容易报警了 如果大量的请求直接打到mysql上 将会引起mysql的宕机 而redi…

    Java 2023年6月6日
    0108
  • 部署-docker安装jenkins

    什么是jenkins jenkins是基于java开发的一种持续集成的工具,提供了web界面来进行jenkins的配置与管理。jenkins通常与版本管理工具一起使用,可以实现程序…

    Java 2023年6月7日
    084
  • Abp RabbitMqEventBus

    RabbitMQ安装介绍查看该网址 两个App都要配置 appsettings.json { "RabbitMQ": { "Connections&q…

    Java 2023年5月29日
    077
  • Mac 系统如何利用软链接在根目录创建文件夹?

    作者:泥瓦匠 出处:https://www.bysocket.com/2021-10-26/mac-create-files-from-the-root-directory.htm…

    Java 2023年6月13日
    0125
  • springboot引入mybatis遇到的坑

    前边分享了springboot项目的创建及springboot项目的默认配置文件等,想温习的小伙伴可移步至文章末尾阅读,感谢。今天来分享下springboot引入mybatis框架…

    Java 2023年6月9日
    087
  • SpringBoot教程,吃透这些知识点,超过90%的Java面试者

    动力节点王鹤老师的SpringBoot入门系列课程,通俗易懂,基于SpringBoot2.4版本讲解。 从细节入手,每个事例先讲解pom.xml中的重要依赖,其次applicati…

    Java 2023年6月9日
    052
  • 3、封装和继承

    隐藏细节 通过访问修饰符private,有些细节不需要用户直接访问,将他隐藏起来。只能间接访问,通过提供一些共有的接口(给外部提供一个可以调用的方法) 会写JavaBean fin…

    Java 2023年6月6日
    069
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球