对象和类—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. R语言、02 案例2-1 Pelican商店、《商务与经济统计》案例题

    编程教材 <R语言实战·第2版>Robert I. Kabacoff 课程教材<商务与经济统计·原书第13版> (安德森) P48.案例2-1 Pelican 商店 PS C: ...

  2. [算法2-数组与字符串的查找与匹配] (.NET源码学习)

    [算法2-数组与字符串的查找与匹配] (.NET源码学习) 关键词:1. 数组查找(算法)   2. 字符串查找(算法)   3. C#中的String(源码)   4. 特性Attribute 与内 ...

  3. UVA10763

    菜鸡退役人来水黄了-- \(\sf{Solution}\) 搞不懂为什么要排序,这不是两个数组直接模拟的数数题吗. 读入后,对于每个学生,令他要去的学校以及他现在所在学校人数对应加一,再 check ...

  4. stm32h750移植lvgl

    之前没做过ui,只用过lcd画几条线写点字,如果按键.菜单什么的全用线画也太麻烦了,所以需要一个ui库. 听说lvgl用的人很多,就打算裸机移植一下用用.本文移植的lvgl版本是lvgl6.2,也移植 ...

  5. Mysql入门练习题

    1.在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄 mysql> select name,age from students where age>25 and ge ...

  6. Codeforces Round #791(Div 2)——D

    D Problem - D - Codeforces 题意: 给定一个有向图,每个点有自己的点权,求一条长度为K的路径使得路径上的最大点权最小,输出该条路径上的最大点权. 思路:(二分+拓扑排序) 最 ...

  7. springboot集成支付宝的支付(easy版)

    SpringBoot对接支付宝 需要先注册账号 到支付宝开发者平台创建网页支付应用 启用公钥模式 需要使用到appId和下面的两个秘钥 写配置信息的代码 1.引入依赖 <dependency&g ...

  8. 图解ReentrantLock底层公平锁和非公平锁实现原理

    在面试或者日常开发当中,经常会遇到公平锁和非公平锁的概念. 两者最大的区别如下 1️⃣ 公平锁:N个线程去申请锁时,会按照先后顺序进入一个队列当中去排队,依次按照先后顺序获取锁.就像下图描述的上厕所的 ...

  9. 图文并茂解释开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

    世界上的开源许可证(Open Source License)大概有上百种,而我们常用的开源软件协议大致有GPL.BSD.MIT.Mozilla.Apache和LGPL. 从下图中可以看出几种开源软件协 ...

  10. 同步与异步、阻塞与非阻塞、创建进程的多种方式、进程间数据隔离、进程的join方法、IPC机制等

    目录 同步与异步 阻塞与非阻塞 综合使用 创建进程的多种方式 进程间数据隔离 进程的join方法 IPC机制 生产者消费者模型 进程对象的多种方法 守护进程 僵尸进程与孤儿进程 多进程数据错乱问题 同 ...