对象和类—Java世界的细胞

今天向大家介绍我自己关于Java中对象和类的一些体会,中有不足还请大家多多指教

1.面向对象程序设计

  1. 为什么会产生面向对象

    我认为人们在最初探索计算机世界时,常常会从计算机出发的角度去思考问题,因而就像解应用题时的倒推法,根据问题思考求解的过程,这就是面向过程的程序设计。而随着技术需求的发展,人们需要更为直接的,从人的角度去思考问题的程序语言,因而诞生了面向对象的程序设计,它像一种正推解法,将数据放在第一位,然后才是算法,即“程序=数据结构+算法”

  2. 什么是面向对象

    • 面向对象的程序设计从组织架构上像在模拟客观世界,其中存在许多对象,对象各自有自己独有的属性和方法,各个对象不断地相互作用,相互联系中运行着

    • 对象的独立属性和方法被封装在其内部,不由外人随意干涉踏足,同时重视对象模块间的接口联系,以及对象与外部环境间的联系

2.类和对象

  1. new关键字的使用

    当使用new关键字创建一个对象时,实际上同时也创建了这个对象的引用,只是该引用不可见,或者说匿名而已,如果我们只用一次该对象,那么这就够了,但如果我们计划使用多次,则需要创建一个引用变量,然后将刚才的不可见引用变量赋给它,这样第二次使用改对象时就可以通过你刚才创建的有名字的变量进行访问了,像下面这样

    new Student();	//仅计划使用一次该对象时只new即可    
    
    Student s;
    s=new Student(); //先创建引用变量s,再创建一个对象,并将该对象的不可见引用赋给s Student s=new Student(); //通常我们将两步一气呵成
  2. 成员变量的初始值

    通常当我们创建一个对象时,如果这个对象有许多成员变量,那么系统会给这些成员变量赋初始值,但虽然你并不需要给他们赋初值,但这是提倡的,我们应该一开始创建他们时就为其赋初值,来提高代码的可读性,同时避免我们因为混淆了成员变量与局部变量(系统不会为局部变量赋初值,故我们创建它后在使用它前必须为它初始化)

  3. 对象的比较

    对象的比较分为两种,一是”是不是为同一个的比较“,二是“是不是为同一种的比较”,前者用一般用引用变量的==进行比较,因为引用变量里存放的是对象的地址,当两家地址一模一样,说明两家为一家

3.方法

对象的方法实际上规定了对象的行为,对象的能力,表明对象可以做的事情以及接受外界什么样的刺激(信号)会做出的反应

  1. 返回类型

    • 返回类型可以是对象类型(包括null),也可以是基本数据类型
    • 当返回类型为对象类型时,返回值为对象引用变量的值
    • 返回类型支持自动转换,大致规则为”要大给小“,”要小给大“则不行,具体见java自动转换机制
  2. 变长参数

    有时我们需要接受的参数序列长度是不固定的,例如需要排队,但你并不知道有几个捣蛋的小孩没有来,参数序列不像以前是固定的,此时如果用数组替代,那么在排队之前我们还需要将来了的小孩们都输入数组,显然也很麻烦。为了解决这种问题,java中引入了变长参数

    • 变长参数的语法为<数据类型... 数据组的名字> 形式上类似数组,只是在原先的数据类型后加上了...,其实实际用法也基本同数组了,它也可以使用下标访问数据组的元素
    • 变长参数使用的规则如下:
      • 一个方法最多只要一个变长参数
      • 如果有多个参数,变长参数必须在参数序列的最后

4.引用问题

  • 当试图调用不存在的方法或成员变量时,编译会报错
  • 当试图调用引用变量为null(即空引用)时,编译不会报错,但在运行时会报错

对象和类—Java世界的细胞的更多相关文章

  1. java基础(二) -对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一 ...

  2. Java 2-Java 对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 消息解析 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例,有状态和行为. ...

  3. Java入门之:对象和类

    Java对象和类 Java作为一种面向对象语言,支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念: 对象: 对象是类的一个实例,有状态和行为.例如 ...

  4. Java-Runoob:Java 对象和类

    ylbtech-Java-Runoob:Java 对象和类 1.返回顶部 1. Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 ...

  5. (五)Java 对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 消息解析 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例,有状态和行为. ...

  6. Java 教程 (Java 对象和类)

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例(对象不是找个女朋友 ...

  7. JavaSE基础(十二)--Java 对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例(对象不是找个女朋友 ...

  8. 20180705-Java对象和类

    Java对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态继承封装抽象类对象实例方法消息解析 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个 ...

  9. Java入门 - 语言基础 - 04.对象和类

    原文地址:http://www.work100.net/training/java-object-class.html 更多教程:光束云 - 免费课程 对象和类 序号 文内章节 视频 1 概述 2 J ...

  10. 四、java基础-面向过程_对象_类中可出现的因素

    1.面向过程和面向对象区别: 1)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...

随机推荐

  1. 【前端必会】前端开发利器VSCode

    介绍 工欲善其事必先利其器,开发工具方面选择一个自己用的顺手的,这里就用VSCode 安装参考 https://www.runoob.com/w3cnote/vscode-tutorial.html ...

  2. HTML&CSS-盒模型运用居中方式合集

    方法:定位,外边距,内边距,层级,边框: 一个元素: 两个元素: 三个元素. <!DOCTYPE html> <html lang="en"> <he ...

  3. 实时营销引擎在vivo营销自动化中的实践 | 引擎篇04

    作者:vivo 互联网服务器团队 本文是<vivo营销自动化技术解密>的第5篇文章,重点分析介绍在营销自动化业务中实时营销场景的背景价值.实时营销引擎架构以及项目开发过程中如何利用动态队列 ...

  4. python基础-较复杂数据类型预览

    1.初识列表   列表就是队列:   列表是一种有序的,且内容可重复的数据类型:   用list代表列表,也可以用list()定义一个列表,同时定义列表可以直接使用 [ ]:   python中列表是 ...

  5. Tomcat实战之路

    目录 第一节.安装升级 1.1.linux初始化 1.2.安装 1.3.升级 第二节.配置 2.1.虚拟主机 2.2.默认网站首页路径 2.3.跳转 2.4.配置Tomcat日志 第三节.安全 3.1 ...

  6. 2022-08-14-esp32把玩记-③_轻轻松松显示个二维码(esp32+ssd1306显示图片)

    layout: post cid: 9 title: esp32把玩记-③ 轻轻松松显示个二维码(esp32+ssd1306显示图片) slug: 9 date: 2022/08/14 09:22:0 ...

  7. 如何免安装使用 Python?推荐 17 个在线的 Python 解释器!

    作者:Al Sweigart 译者:豌豆花下猫@Python猫 英文:https://inventwithpython.com/blog/2022/10/30/17-online-python-ide ...

  8. 2022-11-08 Acwing每日一题

    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我会认真改正的.同时也希望 ...

  9. 28分钟学会Linux三剑客

    把简单的技术学到极致就是高手. 前言 Linux三剑客指的是grep.sed以及awk命令的使用,这三个命令功能异常强大,大到没朋友.grep命令主打"查找",sed命令主打&qu ...

  10. windows server2016/2019在vmware上安装失败

    问题:无法进入装机界面 现象一:打开虚拟机后进入虚拟bios界面,无法引导iso镜像 解决方法1:从虚拟机设置里,修改引导选项,如果需要修改启动盘则设置强制执行BIOS设置 下图为vsphere的截图 ...