面向对象三大特征是什么?

栏目:资讯发布:2023-11-20浏览:2收藏

面向对象三大特征是什么?,第1张

三大基本特征:封装、继承、多态

  1、封装

  封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。

  封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。

  面相对象的不就是使用程序处理事情时以对象为中心去分析吗,与面向过程不同,面向过程关心处理的逻辑、流程等问题,而不关心事件主体。而面向对象即面向主体,所以我们在解决问题时应该先进行对象的封装(对象是封装类的实例,比如张三是人,人是一个封装类,张三只是对象中的一个实例、一个对象)。比如我们日常生活中的小兔子、小绵羊都可以封装为一个类。

   

  比如兔子的属性有两只耳朵、四只腿、一双眼睛、三瓣嘴等;行为(功能)有跑、跳、吃素等。

  2、继承

  继承是面向对象的基本特征之一,继承机制允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。类似下面这个图:

  

  我们在上面已经封装了兔子这个类,其他动物也一样可以进行封装。在封装过程中我们发现兔子、绵羊这两个类具有相似的功能或特性如吃草,所以我们可以抽取共有特征和方法形成高一层的类,如这里的食草动物、食肉动物。继承之间是子父类的关系。继承机制可以很好的描述一个类的生态,也提高了代码复用率,在Java中的Object类是所有类的超类,常称作上帝类。

  3、多态

  多态同一个行为具有多个不同表现形式或形态的能力。是指一个类实例(对象)的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

  多态的优点:

1 消除类型之间的耦合关系

2 可替换性

3 可扩充性

4 接口性

5 灵活性

6 简化性

  多态存在的三个必要条件:

继承

重写(子类继承父类后对父类方法进行重新定义)

父类引用指向子类对象

  简言之,多态其实是在继承的基础上的。比如说今天我们要去动物园参观动物,那么你说我们去参观兔子、参观绵羊、参观狮子、参观豹子都是对的,但你不能说我们去参观汽车。在这个例子中,子类具有多态性:除了使用自己的身份,还能充当父类。

左边是个树形结构,可以自己添加节点的,右边显示当作便树选中节点的时候,显示该节点相关信息。

是不是大概这个结构?

如果是的话我可以给你发一个,因为我目前正在做一个类似的东西

UNIX作业系统(尤尼斯),是一个强大的多用户、多任务作业系统,支持多种处理器架构,按照作业系统的分类,属于分时作业系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。目前它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX(UNIX-like)。

基本介绍 中文名 :Unix 本质 :作业系统 类型 :分时作业系统 开发 :1969年 公司 :AT&T 特点 :多用户、多任务 历史,诞生,流行,家谱,类UNIX,收费情况,UNIX标准,UNIX特性, 历史 诞生 1965年时,贝尔实验室(Bell Labs)加入一项由通用电气(General Electric)和麻省理工学院(MIT)合作的计画;该计画要建立一套多使用者、多任务、多层次(multi-user、multi-processor、multi-level)的MULTICS作业系统。直到1969年,因MULTICS计画的工作进度太慢,该计画被停了下来。当时,Ken Thompson(后被称为UNIX之父)已经有一个称为"星际旅行"的程式在GE-635的机器上跑,但是反应非常慢,正巧被他发现了一部被闲置的PDP-7(Digital的主机),Ken Thompson和Dernis Ritchie就将"星际旅行"的程式移植到PDP-7上。而这部PDP-7(如图1-1所示)就此在整个计算机历史上留下了芳名。 图1-1 PDP-7计算机 MULTICS其实是"Multiplexed Information and Computing Service"的缩写,在1970年时,那部PDP-7却只能支持两个使用者,当时,Brian Kernighan就开玩笑地称他们的系统其实是:"UNiplexed Information and Computing Service",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。1970年可称为"UNIX元年"。 流行 1971年,Ken Thompson写了充分长篇的申请报告,申请到了一台PDP-11/24的机器。于是Unix第一版出来了。在一台PDP-11/24的机器上完成。这台电脑只有24KB的物理记忆体和500K磁碟空间。Unix占用了12KB的记忆体,剩下的一半记忆体可以支持两用户进行Space Travel的游戏。而著名的fork()系统调用也就是在这时出现的。 到了1973年的时候,Ken Thompson 与Dennis Ritchie感到用汇编语言做移植太过于头痛,他们想用高级语言来完成第三版,对于当时完全以汇编语言来开发程式的年代,他们的想法算是相当的疯狂。一开始他们想尝试用Fortran,可是失败了。后来他们用一个叫 BCPL (Basic Combined Programming Language)的语言开发,他们整合了BCPL形成 B语言 ,后来Dennis Ritchie觉得B语言还是不能满足要求,于是就改良了B语言,这就是今天的大名鼎鼎的 C语言 。于是,Ken Thompson 与Dennis Ritchie成功地用C语言重写了Unix的第三版核心。至此,Unix这个作业系统修改、移植相当便利,为Unix日后的普及打下了坚实的基础。而Unix和C完美地结合成为一个统一体,C与Unix很快成为世界的主导。 Unix Unix的第一篇文章 “The UNIX Time Sharing System”由Ken Thompson和Dennis Ritchie于1974年7月的 The Communications of the ACM发表。这是UNIX与外界的首次接触。结果引起了学术界的广泛兴趣并对其源码索取,所以,Unix第五版就以“仅用于教育目的”的协定,提供给各大学作为教学之用,成为当时作业系统课程中的范例教材。各大学公司开始通过Unix源码对Unix进行了各种各样的改进和扩展。于是,Unix开始广泛流行。 家谱 Unix在开发的过程中,没有任何的奖励制度和管理,从一开始在AT&T公司出现时,其是一种近似于好奇或兴趣的东西。 Unix家谱 然而,20世纪70年代,AT&T公司开始注意到Unix所带来的商业价值。公司的律师开始寻找一些手段来保护Unix,并让其成为一种商业机密。从1979年Unix的版本V7开始,Unix的许可证开始禁止大学使用Unix的源码,包括在授课中学习。 到了1980年,有两个最主要的Unix的版本线,一个是Berkeley的BSD UNIX,另一个是AT&T的Unix,在这个时候,很显然,竞争最终引发了Unix的战争。在这场战争中,好的是,软体开发人员还是能够得到Unix的源码并对其按照自己的需要和兴致进行裁剪。而不好的是,Unix开始一发不可收拾地开发不停地出现各种各样的变种。 1982年,Joy创建了Sun Microsystems公司并提供了工作站–Sun-1,运行SunOS(Solaris以之后的十年出现)。而AT&T则在随后的几年中发布了Unix System V的第一版,一个具有强大影响力的作业系统,最终造就了IBM的AIX和HP的HP-UX。 类UNIX AIX Advanced Interactive eXecutive )是 IBM 开发的一套UNIX作业系统。它符合Open group的UNIX 98行业标准(The Open Group UNIX 98 Base Brand),通过全面集成对32-位和64-位套用的并行运行支持,为这些套用提供了全面的可扩展性。它可以在所有的IBM ~ p系列和IBM RS/6000工作站、伺服器和大型并行超级计算机上运行。AIX的一些流行特性例如chuser、mkuser、rmuser命令以及相似的东西允许如同管理档案一样来进行用户管理。AIX级别的逻辑卷管理正逐渐被添加进各种自由的UNIX风格作业系统中。 Aix logo Solaris 是SUN公司研制的类Unix作业系统。直至2013年,Solaris的最新版为 Solaris 11。 solaris logo 早期的Solaris是由BSDUnix发展而来。这是因为升阳公司的创始人之一,比尔·乔伊(Bill Joy)来自加州大学伯克莱分校(UCBerkeley)。但是随着时间的推移,Solaris在接口上正在逐渐向System V靠拢,但至今Solaris仍旧属于私有软体。2005年6月14日,Sun公司将正在开发中的Solaris 11的原始码以CDDL许可开放,这一开放版本就是OpenSolaris。 Sun的作业系统最初叫做SunOS。SunOS 50开始,SUN的作业系统开发开始转向System V4,并且有了新的名字叫做Solaris 20。Solaris 26以后,SUN删除了版本号中的"2",因此,SunOS 510就叫做Solaris 10。Solaris的早期版本后来又被重新命名为Solaris 1x 所以"SunOS"这个词被用做专指Solaris作业系统的核心,因此Solaris被认为是由SunOS,图形化的桌面计算环境,以及它网路增强部分组成。 Solaris运行在两个平台:Intel x86及SPARC/UltraSPARC。后者是升阳工作站使用的处理器。因此,Solaris在SPARC上拥有强大的处理能力和硬体支援,同时Intel x86上的性能也正在得到改善。对这两个平台,Solaris禁止了底层平台差异,为用户提供了尽可能一样的使用体验。 HP-UX 取自 Hewlett Packard UniX ,是 惠普公司 (HP,Hewlett-Packard)以 System V为基础所研发成的类UNIX作业系统。HP-UX可以在HP的PA-RISC处理器、Intel的Itanium处理器的电脑上运行,另外过去也能用于后期的阿波罗电脑(Apollo/Domain)系统上。较早版本的HP-UX也能用于HP 9000系列200型、300型、400型的电脑系统(使用Motorola的68000处理器)上,和HP-9000系列500型电脑(使用HP专属的FOCUS处理器架构)。 HP-UX IRIX 是由矽谷图形公司( Silicon Graphics Inc ,一般用简称: SGI )以System V与BSD延伸程式为基础所发展成的UNIX作业系统,IRIX可以在SGI公司的RISC型电脑上运行,即是采行32位、64位MIPS架构的SGI工作站、伺服器。 IRIX Xenix 是一种UNIX作业系统,可在个人电脑及微型计算机上使用。该系统由 微软公司 在1979年从美国电话电报公司获得授权,为Intel处理器所开发。后来,SCO公司收购了其独家使用权,自那以后,该公司开始以SCO UNIX(亦被称作SCO OpenServer)为名发售。值得一提的是,它还能在DECPDP-11或是Apple Lisa电脑运行。它继承了UNIX的特性,Xenix具备了多人多任务的工作环境,符合 UNIX System V 的接口规格 (SVID)。 A/UX (取自Apple Unix)是 苹果电脑 (Apple Computer)公司所开发的UNIX作业系统,此作业系统可以在该公司的一些麦金塔电脑(Macintosh)上运行,最末(或说最新)的一套A/UX是在Macintosh II、Quadra及Centris等系列的电脑上运行。A/UX于1988年首次发表,最终的版本为311版,于1995年发表。A/UX至少需要一颗具有浮点运算单元及标签页式的存储器管理单元(Paged Memory Management Unit,PMMU)的68k处理器才能运行。 A/UX是以 System V 22 版为基础所发展,并且也使用System V 3(简称:SysV 3)、System V 4、BSD 42、BSD 43等的传统特色,它也遵循POSIX规范及SVID规范,不过遵循标准版本就难以支持最新的信息技术,因此在之后的第二版便开始加入TCP/IP网路功能。有传言表示有一个后续版本是以OSF/1为主要的代码基础,但却从未公开发表过,不过无从证实此版本是否真存在过。 收费情况 UNIX作业系统是 商业版 ,需要收费,价格比Microsoft Windows正版要贵一些。不过UNIX有免费版的,例如:NetBSD等类似UNIX版本。 UNIX标准 UNIX用户协会最早从20世纪80年代开始标准化工作,1984年颁布了试用标准。后来IEEE为此制定了POSIX标准(即IEEE1003标准)国际标准名称为ISO/IEC9945它通过一组最小的功能定义了在UNIX作业系统和应用程式之间兼容的语言接口。POSIX是由Richard Stallman 应IEEE的要求而提议的一个易于记忆的名称,含义是Portable OPerating System Interface(可移植作业系统接口) ,而X表明其API的传承。 UNIX特性 UNIX系统是一个多用户,多任务的分时作业系统。 UNIX的系统结构可分为三部分:作业系统核心(是UNIX系统核心管理和控制中心,在系统启动或常驻记忆体),系统调用(供程式开发者开发应用程式时调用系统组件,包括进程管理,档案管理,设备状态等),应用程式(包括各种开发工具,编译器,网路通讯处理程式等,所有应用程式都在Shell的管理和控制下为用户服务)。 UNIX系统大部分是由C语言编写的,这使得系统易读,易修改,易移植。 UNIX提供了丰富的,精心挑选的系统调用,整个系统的实现十分紧凑,简洁。 UNIX提供了功能强大的可程式的Shell语言(外壳语言)作为用户界面具有简洁,高效的特点。 UNIX系统采用树状目录结构,具有良好的安全性,保密性和可维护性。 UNIX系统采用进程对换(Swapping)的记忆体管理机制和请求调页的存储方式,实现了虚拟记忆体管理,大大提高了记忆体的使用效率。 UNIX系统提供多种通信机制,如:管道通信,软中断通信,讯息通信,共享存储器通信,信号灯通信。

看你需要什么类型的家谱:

1、纸质家谱:书籍形式,正式规范,需要采集资料、编辑排版、印刷装订,过程较繁琐,成 本 较高。

2、网络家谱:通过网站或APP修谱,过程简单,甚至不用钱,操作简单或有使用说明。

家谱是记载家族人文的核心载体,写家谱要明确采用哪种格式。

比如欧阳修式、苏洵式、宝塔式、牒记式、图文对照式、横排图表式、竖排图文式、表记式、图记式等。

示例:使用 找你家谱 编修 宝塔式 家谱,形象直观,简洁易用。

手机修谱·网络寻根

http://tiebabaiducom/p/4865322667

蒲千寻家谱展示

http://tiebabaiducom/p/4865510206

——找你家谱 FindU

ajax无法封装到JDBC代码。

1ajax是客户端的控制技术,用来控制浏览器中某(IE是XMLHttpRequest)插件,这个插件是负责通信的,也就是说ajax是通过控制这个插件来实现通信控制的。

2JDBC是服务器端的数据库访问技术,而ajax是客户端的通信控制技术,两者相差甚远,没有关系,这样ajax是无法封装JDBC的,再说ajax是使用Javascript语言的,是过程性语言,而封装是面向对象语言的术语,两者的差别很大。

3不过可以使用ajax来“访问“到JDBC代码。它也不过能够提交请求和接收服务器反馈(可以进行一定处理),其他的它鞭长莫及。

家族树是制作家谱的软件吗?

是的,家族树支持注册用户建立数字家谱,包括邀请家族人员进入家族树进行协作管理,家族成员在共有的家族空间一起体验娱乐互动应用,而且家族树还有寻根辅助功能,根据你填写的信息,自动匹配可能会是你家族成员的人。家族网还有群组、博客、相册、档案馆、姓氏百科、时间轴等多种功能。这些功能和应用使家族树中的成员有良好的互动性,增加亲人感情和家庭温情。

有什么软件做族谱最好的?可以做家族树的那种~~

这个平台,估计才是你想要的吧,这是系统后台根据每个人的关系信息,自动生成的家族树,操作起来比较繁琐,要家庭成员分别建立自己的账户,管理自己的个人信息,然后通过父母子女的关系认可进行链接,但这却是最为严谨的家族树系统,没有人可以随意修改其中成员,完全以血缘关系来形成这棵树,女孩子同样作为树的延续分枝拓展下去,而且每个人的信息都是在网络中永久保存的。。。

家族树的作用意义

其实看完这张图,大家就会有一些概念了,让家族的每一个成员都可以对自己的亲人关系一目了然,或许有些人已经开始疏远,但是他们之间都是有着不可改变的血缘关系,其中每一个人,也各自记录自己一生的精彩,可以让血脉后人可以有所认知。。。

求一张英语家庭树,简单一点的~

英语家庭树如下:

称谓介绍:

一、mum

1、含义:n <英口>妈妈,母亲。

2、用法

作名词含有沉默,<口>妈咪,妈,妈妈,烈性啤酒,摩姆啤酒,马姆酒,<口>菊花(=chrysanthemum)等意思。

If your Mum finds out what you've done, you'll really be in the soup!

要是你妈妈发觉你干的事,你就要倒霉了!

Your mum will go spare if she finds out what you've done!

要是你妈妈知道你干的事,她会气坏的!

二、dad

1、含义:n 爸爸。

2、用法

作名词含有<口>爸爸,爹爹,老兄,老弟,老伙计,任何老年人,一大块;一大片;一大份,有力的一击(或一拳)等意思。

Dad was snoozing by the fire

爸爸正在炉火旁打盹。

Mom and dad never see eye to eye on anything

妈和爸从来没有对任何一件事有一致的看法。

三、brother

1、含义:n 兄弟;教友;同胞;<俚>老兄。

2、用法

brother指“兄”或“弟”皆可,“兄”是“elder brother”,“弟”是“younger brother”。但除了必须分清是“兄”还是“弟”时外,习惯上不论“兄”还是“弟”,都用brother。

在美国通常不用elder brother,而用older brother。与brother相对应的阴性名词是sister。

brother可指亲兄弟,也可指同父异母或同母异父兄弟,或继父与其前妻或继母与其前夫之子,不指堂或表兄弟。但引申可指“同行,同事”解。

brother作“教友”“会友”解时,它的复数形式是brethren。

brother可用作称呼语。

John and Peter are brothers

约翰和彼得是兄弟。

The man who captained the home team is my brother

率领主队的是我的兄弟。

四、sister

1、含义:n 姐妹。

2、用法

sister的意思是“姐,妹”,通常指同胞姐妹,包括同父异母或同母异父的姐妹。

在西方,“姐姐”和“妹妹”都叫sister,只有需要特别表明年龄大小时或其他必要情况下,才分为elder sister和younger sister。堂姐妹应说cousin。

sister有时还可指“(掌管病房的)护士,护士长”“(修道院的)修女”。

在口语中, sister可用于称呼女子; 在正式文体中, sister可用于比喻。

Joan and Lily are sisters

琼和丽丽是姐妹。

You should take care of your niece for the sake of your sister

看在姐妹的份上,你应该照顾你的侄女。

五、aunt

1、含义:n 伯母;姑;婶;姨。

2、用法

aunt指与父母亲同辈的女性亲属,即父母亲的姐妹“姑母,姨母”或父母亲兄弟的妻子“伯母,婶母,舅母”。与其对应的阳性名词是uncle。

aunt用于口语中还常指小孩对成年女邻或父母亲的朋友、同事中的成年女性的称呼。

aunt是普通名词,但当其与表示人名的专有名词连用时,首字母须大写。

习惯上人们用aunt指代了全部的伯母,姑姑,婶婶,姨母和舅母,不会特地去区别。若是在必要区分的场合时,paternalaunt(父方的)指得是伯母,姑姑和婶婶,而maternalaunt(母方的)指得是姨母和舅母。

She has no relations besides an aged aunt

她除了有一个年老的伯母以外,再没有亲戚了。

My aunt gave me one of her brooches as a keepsake

我姑母把她的一支胸针送给我作记念。

家族树是由什么组成的?

家族树是家族网团队研发的一项应用,它就好比是一个树状的数字家谱,用户在树上可以进行沟通互动娱乐等。

具体来说呢, 家族树,是指利用互联网技术,依据血缘关系或亲祖关系把人联系起来,再按照辈份排序构成树的模型。 在树中的成员可以清楚的知道自己的家族起源、家族关系以及其他成员的基础信息,并且享有记录、分享等沟通娱乐服务。 作用和功效有几个: 追祖溯源 汇聚亲情 沟通分享 传承家族文化 家族树的树状特征和原理可以让树无限延伸和扩大,添加家庭成员,是目前用于家庭沟通比较好的网络工具之一。 你去自己亲自建立一颗家族树会更清楚! 求一个带家族树的家族网源代码

我有一个,跟关系网差不多的源程序,不过跟软件一样的,你看看代码有用吗

家族(25)作用(4)

GIS的十大就业方向

方向1:开发工程师

毕业后要找工作的朋友,得考虑下有哪些工作和自己喜欢什么工作。由于目前GIS就业市场的形势是供大于求、僧多粥少,因此更多的还是考虑市场需求比较好。

据《GIS开发者》第六期的《中国GIS人才生存状况调查报告》一文,“在众多GIS单位中,其主营业务大多是工程开发或软件研发和销售。从事数据处理的单位比例也达18%”,“单位对人才需求最多的是资深开发人员,其次是程序员和项目经理。由此也可看出,如果想从事GIS行业,较强的编程能力才是‘通行证 ’”。打开各大论坛的求职招聘版,也可以看到几乎每个单位都招开发人员。这里找了很典型的一则招聘启事:

职位:GIS开发工程师

要求:熟练掌握C#/C++使用;熟练掌握ArcGIS Engine 90以上版本的使用;有C#/C++结合Engine项目经验者优先;

这则启事简单明了,一共三点要求:语言、组件、经验。客观地说,对应聘者的要求还是很低的,我想一个普通的高中毕业生认真地自学一年应该能够胜任。然而,按部就班的“优秀”本科毕业生却未必能满足这些要求。第一,学校基本上只教VB和C这两门基础的教学语言,目标是过二级、三级,然而考级对编程的要求与工作中对编程的要求完全是两码事,不是一个方向。第二,曾经风靡的两种GIS组件MapX和MO正在退出社会舞台,然而在课堂上仍然是主打。第三,有开发经验的学生太少了,很多学校完全不教二次开发,即使教,对学生的要求也不高,实现简单的浏览、查询就行了,这根本算不上项目经验。因此,想从事开发工作的朋友们,必须在校园里开展自助学习。个人认为,认认真真地参加一次ESRI或超图办的开发组比赛,就可以达到普通公司的要求了。下面再看一则要求比较高的:

1、计算机或GIS专业本科及以上学历;

2、熟练掌握C/C++语言、Java、JSP、C#等语言,熟悉VC++、JBuilder编程环境;

3、熟悉设计模式、UML,能用Rose等建模工具构建系统模型;

4、熟练掌握Supermap、Arcgis等主流GIS平台及二次开发技术,有GIS软件平台底层开发背景,熟悉GIS常用算法,

对Web Gis系统的技术架构、性能、安全等有较深刻的理解;

5、熟悉SQLServer、Oracle数据库开发。

6、有良好的团队精神,有良好的交流与沟通能力,具有跨平台软件开发或嵌入式软件开发经验者优先;

这份工作网友们有说工资少于5000没人干的,也有说这种高人没有10K是供不起的。但其实认真自学四年,满足这些要求是绰绰有余的。用一年自学计算机基础、语言(除了VB或C,C#、C++、Java、VBNET四者应当有一)、网络开发,用一学期学习商业GIS桌面软件和组件开发(建议参加比赛),用一学期学大型数据库和分布式系统,用一学期学软件工程、系统分析与架构,用一年学习开源GIS软件并练习底层开发(比二次开发技术含量高,钻研能力强的人可以走这条路。需学习算法与数据结构、计算机图形学、数字图像处理。很多学校开了这些课,但一是跟GIS结合不紧,二是实践不够以至于理论不能掌握。),用一学期了解跨平台、嵌入式、虚拟现实等前沿技术。

肯定有人会指责,这样的规划一是过于偏重IT而轻视地学和数学,二是太理想化没人能学出来,三是要学校还有什么用。正常来说,应该有少数人会冷嘲热讽或破口大骂的。下面我“未雨绸缪”,提前一一作答。第一,上文只是对想从事开发工作的人说的,对开发人员来说,计算机技术是最重要的。对这部分GISer,只要能把G的基本知识和发散思维引入IS,就非常好了,术业有专攻嘛。至于其它的路,下文还有探讨。第二,世上无难事,为之,则难者亦易矣,不为,则易者亦难矣,对于毅力匮乏、眼高手低、光说不练的人而言,这的确太理想化了。另外,上文所列的内容只是指引方向,并不是要求全部掌握,而且学校毕竟不是工作,不用每样都学很深。第三,对于想走这一方向的人来说,除了学位证书那一纸遮羞布,学校确实用处不大。从课程设置和教学内容来看,大多数学校似乎都是想培养科研人才的——当然培养方式还有待改进。不只是GIS专业,很多学科都存在理论脱离实践、教学脱离实际、校园脱离社会的问题,何必盲从呢?成绩可以光耀门楣,可以赚取奖金,就是不能给你带来一份好的工作——你看拿家GIS公司的招聘要求里写了“成绩优异者优先录取”?当然,在大家能力都不行的情况下,成绩好的便成了矮个里的将军。

小结一下,这条路是通向开发工程师的,发展得好可以成为项目经理吧。这里需要补充的是,开发并不仅仅是指编程,需求分析和软件架构也是开发的重要组成部分,这些工作不做好,编程的时候就会比较乱,而且系统的健壮性也不容易好。不愿意编程的人,比如说女生,可以考虑往这方向走,不过最好对GIS编程也有一定接触。

方向2:三维工程师

其实也应该属于开发,只是觉得很多初学者对三维比较感兴趣,因此单列出来。还是先看一则招聘启事吧:

职位描述:

在高级开发工程师/系统工程师指导下进行地学三维相关模块的设计与开发工作;

职位要求:

1计算机、地理信息系统、应用数学或者相关专业本科以上学历;

2掌握VC开发技巧,熟悉c/c++编程,对OpenGL或者D3D技术有一定了解,;

3英文水平良好,阅读英文技术资料没有障碍;

4较强的逻辑分析能力, 学习能力, 创新能力和团队协作能力;

5有三维仿真、游戏引擎开发经验者优先

这应该出乎很多初学者的意料:搞三维也得会编程的!没错,三维开发可以简单地分为两块:建模和编程。用GIS软件建立的地面模型和用3DMAX等软件建立的地物模型是静止的,要对他们进行动态控制需要编程。举个小例子,桥梁每时每刻都因受到风和汽车的力而发生形变,要想了解形变的情况,可以在桥梁上装上若干 GPS即时的获取位置信息,同时用软件建立桥梁模型,通过编程使得GPS数据和桥梁模型关联起来并加以夸张,这样每当GPS数据发生了改变,模型上的桥梁也就发生相应的可观察的形变。

要想从事这种工作,在计算机方面要自学3DMAX或MAYA,在编程上要深入学习用C++进行OpenGL技术开发,在GIS上要注重学习DEM和虚拟现实的内容。这些课堂上基本都是很少涉及的,必须自学。

方向3:数据工程师

数据是GIS的血液,一个项目很大一部分资金都是注入到数据的采集、生产和维护中的,因此这也是一个比较大的方向。还是先看一则招聘启事:

职位要求:

1相关专业本科毕业,应届也可

2有良好的专业知识,熟悉ARCGIS软件操作

3有地图数字化方面工作经验,有数据库相关操作经验

4对GIS工作抱有热情,有良好的团队合作精神

岗位描述:GIS数据的生产和维护

我的感觉,这是一个很辛苦的、技术含量最低的GIS工作。前些时候去江苏省基础地理信息中心参观,看到数据处理的地方就像一个工厂车间,很宽敞,一排排的电脑,大家就带着立体镜根据测量图纸在ArcGIS中的遥感影像立体像对上矢量化,录入到空间数据库中。矢量化是我们的拿手好戏,这里就不赘述了。这种工作,一般中专生培训培训也能做。

再有就是遥感和航测数据处理,学过遥感和摄影测量课程,会用ERDAS或ENVI或ER MAPPER,以及VirtuoZO就行。

当然,随着GPS导航的兴起,导航数据和电子地图成为了一个热点。这一方面我没有接触过,因此不能提出看法。可以搜索一下做导航的一些公司的招聘启事。

方向4:销售/市场/企划

越来越讲究工作经验的要求。我了解的不多。

方向5:软件测试/技术支持

小公司能专门设置这样的职位么?

方向6:项目管理/文档编写

文字功底扎实,专业知识全面,洞悉行业。

方向7:提供解决方案或辅助决策服务

不开发系统,只是用桌面软件进行空间分析,为客户提供解决方案或辅助决策的服务。比如说,某超市要选址,需要特地做个系统么?没必要,在ArcMap中用VBA写程序,得出最优解,写份报告就行了。

方向8:转到应用行业

在高校中走方向7的人,有很大一部分就转到了相关应用领域工作,把GIS作为处理该领域的一种工具,而不再做一个纯的GISer。比如说搞土地应用的进了国土局,搞林业应用的进了林业局,搞水利应用的进了水利局……毕竟,如果把GIS作为一种技术,那她只有在广阔的应用领域中才能充分展现自己的魅力,需要有学GIS的人专注于把这门技术深入地应用到某一个领域中。

我导师曾说过:当GIS被融入IT主流时,是幸运也是不幸。对那些无法在IT 的浪潮中辗转腾挪、上下翻飞、搏激弄潮的朋友们而言,不关注技术本身,转而投身到应用中,或许是一个明智的选择。对那些无法在IT的浪潮中辗转腾挪、上下翻飞、搏激弄潮的朋友们而言,不关注技术本身,转而投身到应用中,或许是一个明智的选择。对那些无法在IT的浪潮中辗转腾挪、上下翻飞、搏激弄潮的朋友们而言,不关注技术本身,转而投身到应用中,或许是一个明智的选择。

不错,大城市的这个局那个局很少招本科生了(有关系的不算),那么小地方呢?或是其它领域呢?为什么不能到GIS还没有涉足到的区域去开疆拓土呢?与其他人相比,你具有非专业优势。胡乱打个比方,同样做村长,你至少比学行政管理、只会纸上谈兵的毕业生多了一个高科技手段,手握盗版软件的你可以用GIS来科学地管理村子。至于怎么应用,我一时半会吹不出来,但人类80%的信息都和空间位置有关,肯定有你能挖掘出来的东西,当你带着GIS的思维去工作,只要是有心人,肯定能在工作中发现用的到GIS的地方,只有想不到的,没有做不到的。用了之后,只要有效果(或者吹出效果),不就成了建设新农村和创新型国家的典型?

方向9:升学

越来越多的人考研究生,据《GIS开发者》第七期的《要不要考研?考什么样的研?》一文,绝大部分是为了逃避就业压力。可是研究生毕业也要工作呀,无非也就是上面那几条路。大家知道现在的研究生教育也不咋的,有些人是“做”几篇没意义的论文毕业了事,与当年本科毕业的同学相比,多了一层遮羞布,却少了三年工作经验。精明的企业老板是不会看重学历的,因此研究生的就业情况也不容乐观。有人这样说保研:用浪费三年时间的代价换来继续浪费三年时间的资格。当然优秀的研究生还是比本科生多一些机会,尤其是事业单位对学历还是比较看重的吧。

读研,第一年上课,第二年“自由活动”,第三年(或最后半年)做毕业论文。除了毕业论文,在读研期间还需要在期刊上发表一些论文,各个学校对论文数量和质量的要求是不一样的。剩下的时间主要是做导师的项目和自己充电。项目通常分为“纵向项目”和“横向项目”两种。纵向项目,俗称“国家给钱的”,是由政府长期设立的各类研究基金支持的项目,主攻前沿课题;而横向项目,俗称“社会给钱的”,是企业或者其他单位就某些课题委托的项目。因此这里实际上又有两条路可选:想走科研道路的,选择以纵向项目为主的导师;不想走科研道路的,选择以横向项目为主的导师。

那么GIS科研主要做什么呢?个人认为还可以分成四条路:基础理论、实现技术、深度应用和新应用。基础理论是整个学科的核心与灵魂,这里多列举几个研究方向:空间数据库的准确性研究;空间关系语言研究;空间数据的多种表达方式研究;地理信息的使用和价值研究;海量空间数据库的结构体系研究;地图制图的规范化研究;地理信息数据共享的研究;GIS中时空关系的研究;GIS和空间分析研究;法律、信息政策和空间数据库关系研究;地理信息系统的互操作研究;地理世界的规范化模式研究。再举几个实现技术的科研方向:空间决策支持系统;空间信息的可视化研究;遥感和 GIS的集成研究;GIS的用户接口研究;通过协作形成空间决策系统的研究。再举几个深度应用的科研方向:GIS在全球变化中的作用研究;在社会背景中,如何在 GIS中表达人、空间与环境的研究。至于新应用,则是让GIS技术渗透到生产生活各个方面的,比如上面提到的村长GIS,还有在《GIS初学者》第一期中《访南京师范大学学生胡雷地》一文中提到的家谱GIS。

搞基础理论估计是最底层的,也是最难的,当然只有走这条路你才有可能成为院士、科学家、行业的核心引领者和推动者。想走这条路的人,在本科期间重在打基础,尤其要有深厚的数学功底,不仅是高等数学、线性代数、概率统计,还有必要自学离散数学、数值分析、拓扑学等科目。在计算机上需要对C++、算法与数据结构、数据库原理、计算机图形学、数字图像处理有一定理解,并能熟练使用Matlab、 IDL等科研常用软件。在GIS上,在有一定实践能力的基础上,更加注重对基础理论的理解,多读一些GIS书籍。到硕士研究生阶段,根据学校及导师情况大致选择自己的方向,进一步打基础。这样,在博士期间有望有所创新和突破。

搞实现技术比基础理论少一些抽象,而对计算机的要求可能更高一些,数学仍然很重要。我在书店看到过有常用算法与实现代码的书,觉得比较适合本科生钻研。

GIS只有在应用中才能体现其生命力,而深度应用最能体现GIS的强大。想走这条路的人可以在大学期间选中一两个应用方向,如物流、矿产等,多看一些GIS在该领域的应用论文。在研究生阶段,也就只专注于一个领域的应用。

我个人则希望能够在将来成为拓展GIS应用领域的人,这需要对各种技术有所认识,但不用深入钻研,更重要的是会用GIS的思想来思考问题。我用活跃的思维和火热的热情来引导学习,或许比较适合这个方向。又想起闾国年教授的话:“做学者,不做学生”。

方向10:彻底转行

实在对GIS没兴趣,不如彻底转行。要舍得放弃。但请不要辱骂GIS。

结语

本文相当于一篇需求分析,阐述了GIS学生未来的走向,并简单地谈了选择不同的路在大学期间应该分别做些什么。我知道很多人是被调剂到GIS专业的,你们也不知道自己是否喜欢这个专业,那么我建议你:合理的判断是建立在充分的阅读与思考上的。充分利用网络资源吧。

还有两句话不能不提:万事开头难;GIS对勤奋的人来说是机遇,对懒惰的人来说是噩梦。毅力匮乏是我们这一代人(当然不是指每个人)很突出的一个毛病,在这个节奏快速、物欲横流的时代,有几人能不浮躁?坚持到底就是胜利,这是最浅显也是最深刻的道理。这里引用三句诗来描述GIS学习的三个阶段(是反复循环以至无穷的),希望能对大家有所帮助:

昨夜西风凋敝处,独上高楼,望断天涯路。——在迷茫中寻路

衣带渐宽终不悔,为伊消得人憔悴。——在信念中摸黑

众里寻她千百度,蓦然回首,那人却在灯火阑珊处。——在反思中突破

面向对象三大特征是什么?

三大基本特征:封装、继承、多态  1、封装  封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级...
点击下载
热门文章
    确认删除?
    回到顶部