关键词: 联系   调用    函数    集合


  • 现实中的联系

联系有很多含义。它可以是你手机里的联系(人),通讯工具中的联系(如QQ);它也可以指一个动作(如:有时间联系我)。等等。通常来说,这些都是狭义的联系。而本文要说的是哲学中的联系,可以说是复杂含义的联系或广义的联系。

在哲学中,联系指事物内部矛盾双方和事物之间所发生的关系。听起来不好理解对吧?其实我们不必搞懂它,我们的目的是知晓联系是什么,而它可以有更有趣的解释。我是唯物主义者,所以先给联系一个声明:联系是客观存在的。下面我们来进行一些有意思操作。
通过把第一句中的‘事物’替换为‘对象’,我们能得出一些推论。(注意,替换后意思可能改变,但它有利于我们理解联系)改变后为:联系指对象内部矛盾双方和对象之间所发生的关系。回忆前文提到的对象,对象中有状态和行为,当时我分别称它们为静的东西和动的东西。而静动便可以理解为对象内部的矛盾双方,那么这句话就可以这样理解:联系就是说一个对象的状态和行为与另一个对象之间发生的关系。我们仍然举马的例子(可能我比较喜欢马)。马作为一个对象(实例为某匹马),当它受到威胁时,比如一头雄狮要来吃它。马的状态可能由静态变到紧张态,它还可能发出行为:嘶叫。当然如果它正常的话紧接着就是奔跑,逃脱狮子的追杀。狮子追马就是一个联系。
现实世界中几乎任何一个对象都可以和其它任意对象有联系,区别是有的联系只是机械的相加,没有实际意义。这里我说的可以有联系是站在人类视角,任何对象之间都有联系没错,而人类赋予了他们实际含义。

现在基本了解了什么是联系。我们接下来要做的仍然是举一反三,但在这之前我声明一下本文接下来要用到的数学名词:赋值,函数,集合。

  • Java 中的联系
先从一个对象说起。假如你创建了一个类A,并给它分配了字段和方法,即对象的状态和方法。为了使A类更有意义,分别给对象成员赋值,我称它为出厂化设置。在方法中也定义了相应操作。下面写出:
class A{private int a = 1;static String s = "Hello!";public A() { }    //构造方法,初始化为默认值public int get_a() {   //返回a的值return this.a;}
现在你有了一个类A,但你能做什么呢?你好像什么都不能做,比如你不能将字符串s输出。如果你稍微了解一点java,你就能做好多事情。输出内容,你会在主函数main添加:

System.out.println("s= "+A.s);//控制台显示:Hello!

别小看这条语句,它包含了很多信息。如果你懂得多一点,你会知道println()是PrintStream类所调用的方法,out则是一个静态PrintStream对象,而它又是system类的一个属性,再往深处扩展,system存在于lang类库中,java.lang是默认导入到每个java文件中的,因此不必在开头声明import(类库)。(A.s,s是静态变量)
好了有点晕。不过没关系,这里我们的目的是输出s,下面我来理一下这当中的机理。你有了一个类A,它有字段和方法,你想用它的字段或方法实现输出s的操作,于是你调用了PrintStream类的println()方法,然后成功实现。
请注意‘调用’一词,它体现了联系,这也是本文要讲的主旨。输出s是一个简单的例子,下面我们在延伸一下。

假如你又创建了一个类B,比如:

//计算给定数字的平方并输出。class B {public static void main(String[] args) {int n;int m = way(n);    //未初始化n,修改见下System.out.print("m*m ="+m);}public static int way(int n) {return n*n;}    

但是上述代码并不能执行,因为你没有初始化n,即给n赋一个值。(关于赋值我会在之后的文章中详细介绍)
但是你想让n等于类A中a的值,该怎么做呢?
你需要某种中介将这两个对象联系起来。其实不复杂,只要用这几条语句即可实现:

A x = new A();n = x.get_a();//控制台显示:1

对,你创建了一个对象A,它已经被定义好了(A已存在),并用x作为这个对象的名字,x中有关于a的初始化
“int a = 1;”所以x.get_a()表示你调用了x的方法,n=x.get_a(),你成功把a值成功赋给了n。
到此完成联系。可表述为类B中字段n联系了类A中方法get_a().
static的用法。
注意到类A中有一个static字段:String s="Hello!"; 你想在类B中输出s,只需A.s即可。回想在上一篇博文中static 的介绍,即是这样用。(静态方法类似)

  • 函数和集合(浅谈)

简单谈一下我的理解。 在编程中函数和方法意义相同,但是最初为什么叫函数呢?我是这样猜想的:方法中的传入参数和返回参数刚好对应函数中的自变量和因变量。所以方法也叫函数(在c/c++中称呼)。
再说一下集合*。其实一个类就相当于一个集合,类与类之间的联系就是集合之间的联系,类中成员即集合中的元素。另外集合的运算也体现了类之间的交互和关系。

注释:*1(集合):指数学中的集合。

(推荐阅读:《Thinking in Java》 (美) Bruce Eckel 著  。引用原书的评论:本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel 具有亲和力的文字和小而直接的编程示例面前也会化解于无形。)

联系——让世界动起来相关推荐

  1. 【Direct3D游戏开发】——DirectInput 让世界动起来

    其实我们是可以通过Windows消息和API取得键盘或者鼠标或者其他设备的输入信息,但这有个等待windows消息传送的延时,笔者试过直接在消息回调函数中相应键盘的上下左右消息去使场景中的模型进行旋转 ...

  2. 地球那么大的开放世界游戏怎么做?腾讯云高级架构师为开发者设计了一套方案

    Unity全球开发者大会Unite Shanghai 2019在上海召开,期间诸多技术专家来到现场为开发者分享主题多元的技术演讲以及行业趋势分析. 腾讯云互联网行业架构师余多,在大会期间进行了&quo ...

  3. 我的世界神奇宝贝服务器怎么修改6v,我的世界神奇宝贝改6v | 手游网游页游攻略大全...

    发布时间:2017-12-18 我的世界神奇宝贝火球鼠皮肤下载.那下面的这个皮肤则是神奇宝贝中的火球鼠哦~有喜欢这个宠物的玩家不妨进来看看在我的世界像素游戏中它是什么样的吧!英文名为:Cyndaqui ...

  4. 什么是Crunchyroll,它提供什么动漫?

    Mano Kors/Shutterstock马诺·寇斯(Mano Kors)/快门 For anime fans everywhere, it might seem impossible to get ...

  5. 我的世界神奇宝贝服务器修改体型,在我的世界神奇宝贝服务器里怎么作弊quest; | 手游网游页游攻略大全...

    发布时间:2017-10-08 我的世界是一款自由度非常高的沙盒游戏,玩家可以搭建自己的服务器与其他的玩家一起玩游戏,下面游戏园的小编就为大家解析一下怎样让你在我的世界饥饿服务器里制霸!希望此篇文章能 ...

  6. 2006年中国动漫行业预测及投资分析报告

    2006年中国动漫行业预测及投资分析报告 报告目录 第一章 世界动漫产业概况 第一节 世界动漫发展历程及现状 一.卡通的出现及其早期发展 二.世界十大经典动画影片 三.2004年全球产值超5000亿美 ...

  7. 2023-2029年中国动漫产业园行业市场行情监测及战略咨询研究报告

    2023-2029年中国动漫产业园行业市场行情监测及战略咨询研究报告 报告编号:1670641 免费目录下载:http://www.cninfo360.com/yjbg/qthy/cm/2022102 ...

  8. 我的世界p3服务器文件夹,悟饭游戏厅怪物猎人p3文件夹位置 | 手游网游页游攻略大全...

    发布时间:2015-12-29 有部分玩家问到了中的截图文件夹位置,不知道截图被放到了哪个文件,下面我们将为你介绍具体的截图文件夹位置,需要注意的是这是一个隐藏文件夹! 玩家提问:截图快捷键是P,但是 ...

  9. 中国品牌日,英派斯与世界共享优质健身器材

    2021年5月10日,中国品牌日迎来它诞生的第五年,本届中国品牌日将围绕"中国品牌,世界共享:聚力双循环,引领新消费"的主题展开.在运动健身器材领域,从业者和消费者对于国内自主品牌 ...

最新文章

  1. 注意String.Split的几个重载形式
  2. 查看Linux的磁盘使用情况
  3. VTK:标签轮廓用法实战
  4. EXTRONICS推出IRFID500便携式UHF RFID读写器
  5. 什么时候学习编程都不晚
  6. python list add_Python的List方法附加和扩展有什么区别?
  7. python 正则表达式 速查表
  8. JavaScript如何调用摄像头
  9. avx2指令集对php有用吗,AVX2指令集的作用
  10. cmmi认证是怎么评估的?流程是什么
  11. 医学图像中的窗宽、窗位
  12. Linux平台提取DSDT,ubuntu下提取DSDT SSDT
  13. 【重识云原生】第六章容器基础6.4.10.2节——StatefulSet常规操作实操
  14. Elasticsearch:运用 Pinned query 来提升特定的结果
  15. 6款办公软件,文案人员常用到
  16. 一位算法工程师对自己工作的总结,非常具有借鉴意义!
  17. WiFi辐射比手机电脑辐射数值小 60厘米外基本为0
  18. 2021固原一中高考成绩查询榜,【固原一中高考成绩实现新突破】
  19. 你还在担心用户的真实号码被泄露?号码隐私保护服务PNS来了
  20. 浮点数运算计算机在线,双浮点运算计算器

热门文章

  1. 什么是Java中的守护程序线程?
  2. 方法和函数有什么区别?
  3. win11杜比视界音效怎么打开 window11开启杜比视界音效的步骤方法
  4. ffice 2016 文件运行excel的数据透视表中的数据切片器的时候自动关闭
  5. excel 单元格文本链接方法
  6. 10A 的GROUP和CUI使用
  7. aardio部署_aardio有什么用
  8. linux i o端口编程,linux 操作 I/O 端口
  9. MybatisPlus报错: org.apache.velocity.context.Context(已解决)
  10. 程序猿必须要知道的一个内容:客户端+服务端一(源码解析、建议收藏)