java编程(1)之对象

原创 2018年04月15日 21:59:06

1.前言

    在用java编程的时候,每次都按照以完成效果为目的的编程,忽略了java的编程思想,最后给我的痛处是,效果出来了,算正常的运行,但是,一旦代码需要修改,连本人都会忘记当时为什么会那样写代码,为什么写之前不会让代码更加有模块化,为什么不能让代码更加易读?前些日子做了一个简单的web应用,简单,实在不能再简单的应用,但是就这么个应用,我发誓再也不想看这个代码第二遍,毫无价值的代码。针对这些问题,本人决定重新开始,从0学习java。

对象

       OOP(Object-oriented Programming)在我眼中,每一个物体都使一个对象,大到一个人,小到一个细胞。人们在解决一个问题的复杂度直接取决于抽象的类型和质量。在很早以前面试的时候,有人问我:如果让你来设计电梯,你如何设计?看似简单的问题,可我当时却蒙了,我第一个想的不是对象,也不是模型,我想到的是解决过程,即我需要定义哪些变量,需要使用怎样的逻辑去处理电梯上下的运转。说着说着最后有点不知所措。如果说这个时候我能将电梯问题看做是一个对象,或者抽象成模型,它由哪些部分构成,每个部分负责什么样的工作,每个工作需要哪些参数,各个部分之间的联系,以及参数间的传递等等等等。那也不会至于当时说着说着竟无话可说。

    每个对象都有一个接口,在java编程的时候,为了能减少类的创建,往往喜欢忽略实体类的重要性,其实实体类是一个对象身上的公有特征,比如人,公有特征有四肢,有脸,有身高,但是这些属性却不一定相等,拿一个实体类进行对象的封装,可以更加容易的了解到这个对象具体有哪些属性,以后我们要增加这些属性可以很方便的找到这个对象进行增加或者修改,反之,例如之前本人写的一个web应用,没有用到实体类的映射,在提交程序后,运行老是小毛病不断,以至于我不得不重复花时间修改代码,有时需要变量,就直接从数据库读取,然后用拿到的数据直接传回前端,当时写代码的时候爽的一笔,到改代码的时候欲哭无泪,写了太多东西,代码毫无模块可言,读自己的程序有种想骂街的冲动,这要万一不是自己写的代码,那估计我就得骂娘了。所以,千万要让代码有生命力,千万不能图一时的快而忽略了java的编程思想。

   每个对象都提供服务

       当正在试图开发或者了解一个程序设计时,最好的方法之一就是将对象想象为“服务提供者”。当我们想要去完成一件事情时,最好可以在别的类库或者别人已经写好的服务代码拿过来为我们所用,既然别人已经做好了一个轮子,而我们需要造车,然后在自己去造轮子,那岂不是浪费时间吗?所以学会看别人的代码,学会使用别人的接口来实现自己的服务。高类聚是软件设计的基本质量要求之一。比如现在我们要实现一台打印机的打印功能,但打印机包括针式打印和其他类型打印,打印的类容包括A4纸和发票,这个时候,我们有两个选择,一是将打印功能分为一个模块,将打印格式内容分为一个模块,这样我们好像也是很好的完成了程序的开发,但是,如果我们把不同打印机分为不同的服务,不同的打印格式分为不同的服务,这样,我们需要完成什么样的打印,只需调用不同的服务即可,清晰还不容易出错。

被隐藏的具体实现

    隐藏代码,使为了步让一些不知道内情的开发人员不小心而破坏了代码的完整性,如果把一些容易出问题,或者不需要其他人关心的代码,大可隐藏起来。这样可以避免一些误操作事件的发生,减少出bug的几率。


第一天总结

    虽说大佬都将,学习一门语言,看代码就够了,遇到不懂的问题后在去查询,我想说的是,既然花那么多钱买的书,如果不看看,我靠也太亏了吧。


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ALittleSpring/article/details/79953145

EJB商业探讨的白皮书

1 业界支持  任何一个商业化的技术要想拥有良好的市场态势,业界内重要企业的大量参与是十分重要的。J2EE是由SUN引导,各厂商共同发起的,并得到广泛认可的工业标准。业内企业计算领域的大企业如:IBM...
  • DrunkenLion
  • DrunkenLion
  • 2001-06-20 08:49:00
  • 656

Objective-C编程基础读书笔记(5)

Objective-C中的面向对象概念:复合及其使用
  • mouyong
  • mouyong
  • 2013-07-16 11:09:36
  • 1985

Java读取键盘输入并输出的方法

InputStreamReader 类字节流通向字符流的桥梁 BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。  我们可以使用 BufferedR...
  • u010722938
  • u010722938
  • 2014-01-07 15:26:15
  • 655

JAVA基础【4.1】《Java核心技术1》对象与类

前言:知识是一个认知的过程,学习知识的方法有很多,最常见的莫过于通过书本去学习知识。笔者从毕业转行从事JAVA到现在,深深感到,知识不可无体系,感觉见过的知识点很多,却又说不出到底Java这门语言掌握...
  • aiowang
  • aiowang
  • 2017-01-12 15:18:09
  • 230

[java]读书笔记整理:一切都是对象

  • 2010年02月08日 16:28
  • 6KB
  • 下载

计算机专业论文译文-对象的传递与返回

  • 2010年05月21日 13:51
  • 283KB
  • 下载

java编程:计算1!+2!+3!+......10!的值

public class 第一题 { public static void main (String args[]){ int a=1; int count = 0; for(int i=1;...
  • qq_38242192
  • qq_38242192
  • 2017-08-01 15:34:42
  • 161

用java写递归程序,从1打印到n

public class Test{ long f(int n){ if(n==1) { return 1; } System.out.pri...
  • github_38701784
  • github_38701784
  • 2017-05-09 00:50:53
  • 142

Java第三章习题3-5(1到20的阶乘和)

注:int型已经无法存储,需要定义long型变量 Jiecheng.java /* * To change this template, choose Tools | Templates...
  • angeljing521
  • angeljing521
  • 2016-09-13 12:26:12
  • 1954

java编程1

JAVA相关基础知识 1、面向对象的特征有哪些方面  1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的...
  • fengpanpan510
  • fengpanpan510
  • 2014-08-13 11:31:52
  • 185
收藏助手
不良信息举报
您举报文章:java编程(1)之对象
举报原因:
原因补充:

(最多只允许输入30个字)