强类型 弱类型 显式类型 隐式类型

所谓的显式类型和隐式类型,区别在于对于变量,是否需要显式说明它的类型。对于显式类型语言来说,一个变量的类型,是在变量声明之初就决定了的,声明之后不能更改。

所谓的显式类型和隐式类型,区别在于对于变量,是否需要显式说明它的类型。对于显式类型语言来说,一个变量的类型,是在变量声明之初就决定了的,声明之后不能更改。

//C++
int x;  //这里x被声明为一个整型。
x = 10; //OK,类型匹配。
x = "abc"; //Error! 类型不匹配
x = 10.24; //虽然在语法上OK,但是这种写法会引发隐式类型转换,
//x中实际存储的值是10,而不是10.24。

当然,即使在显式类型的语言中,也有所谓的“隐式类型转换”机制让用户在书写语法上自由一些。比如上面的例子中,将浮点数10.24赋值给一个整型 量并不会导致语法错误,而是会引发隐式类型转换。但即使是隐式类型转换,也是将“不符合类型的值”向变量所具有的类型靠拢,而不会改变变量的类型。

而隐式类型语言就不同了。隐式类型语言对变量没有显式的声明。一个变量没有固定的类型,它的类型是随着当前存储的内容而变化的。

#Python
x = 10   #这时x是一个int类型
x = "This is a string"  #x同样可以接受一个字符串,
#这时,x的类型由int转变为了string
x = 10.24 #x又由string变成了float类型,
#注意这里并没有什么隐式类型转换,
#x里的值就是确切的float类型数值10.24,
#改变的是x的类型,而不是存储其中的数值。

但是我们要意识到一件事:我在上面举的例子,显式类型也好,隐式类型也好,它们都是有类型这个概念的!

C++自不必说了,对变量声明时指定的类型就说明了它是有类型区分的。那么像Python这样的隐式类型语言,我们看不到变量的类型,如何证明它是有类型的呢?首先,python有type函数,可以看到变量当前的类型。

>>> x=10
>>> type(x)

>>> x="This is a string"

>>> type(x)

>>> x=10.24
>>> type(x)

这里我们可以清楚的看到当赋予x不同值的时候,x的类型是会变化的。

另外,在Python中,不同类型的对象不能相互替代和操作。

>>> 10 + '20'
Traceback (most recent call last):
  File "", line 1, in
TypeError: unsupported operand type(s) for +: 'int' and 'str'

这一切都充分的证明,在Python里,是有明确的类型的概念。

而某一些语言,它们是没有很明确的“类型”的概念的,这些语言就被成为弱类型语言。强类型和弱类型的主要区别是,在语言中是否存在明确的类型概念

Perl和PHP就是很著名的弱类型语言。

#Perl
$x = 10+'20';    #这里的10是整型而'20'是字符串?
#不,Perl不关心这个。
#只要它们“看起来像”数字,就可以放到一起运算,不是么?
print $x;           #输出了30

在弱类型的世界中,所有的东西都是一样的,你不用区分它们到底是什么类型。事实上,也许在内部实现中,所有的东西最终都被存储为同一种类型。

显式类型一定是强类型的,而弱类型一定是隐式类型的。但隐式类型也有可能是强类型的,比如Python。

怎样区分强类型还是弱类型?很简单,让它们做一做 10 + ‘20’ 吧 🙂

强类型和弱类型的主要区别在于:在语言中是否存在明确的类型概念
Python、C++是强类型的语言。
Perl、PHP是很著名的弱类型语言。

文章作者令狐虫

就这样吧

最近一阵子由于个人的原因导致很长时间都没有更新了,我都不知道我自己在干什么,每天就是在图书馆跟教室宿舍三点一线,一直在复习软件设计师的教程。

最近一阵子由于个人的原因导致很长时间都没有更新了

我都不知道我自己在干什么

每天就是在图书馆跟教室宿舍三点一线

一直在复习软件设计师的教程

感觉现在是很头痛,之前的基础太差了,现在一些理论的东西是,完全不知道讲的什么,没办法,基础的东西得慢慢补了,能不多是多少了吧,到现在时间也不算很多了

说以下现状吧

现在看到了编译原理,看得是云里雾里,完全不知道书里面在说什么

特别是有限自动机、算法中的np问题 没办法 像我们这种菜鸟 知之为知之 不知就google之

终于不负所望 找到了 I do chicken right the life game wikipedia

下面总结下现在的状态 希望自己好好打起精神来

反正最近是很没心情了

越是深刻的认识自己越是惭愧了  还得好好的努力

真的

现实的打击 已经是麻木了

但是生活还得继续

时间不会对任何一个人宽容的

他很公平 给每个人的时间都是一样的

剩下就看你的了

时间也不多了 在学校算是混日子吧

课都不想上了

没意思 学校是负责生产证书的地方 其他的可没什么都不会教你的

所以现在的学生会我基本也不想去了

这个以后会写一个总结吧

毕竟在学生会那么久了  有那么的多的朋友曾经一起工作 很怀念

再说说最近的自考吧

自考这段路总算走完了。虽然那有些时候不愿意走下去,但是有我的同学们一起鼓励一起支持,就这样一路走下来了,明天考完了就没有。希望能这样一直坚持下去!

自从去年12月份报考自考 到现在以及那个一年 期间的辛苦也算不什么了

只是每个学期坚持去考试而已 重要的是过程

嗯 是的  过程很重要 重要的是在自考的过程中 认识了很多你不认识的人  一起努力过 这就足够了

顺便说下  不出意外的话  明年可以拿到毕业证了 我可是全过咯 嘿嘿  不像有的人哦 但是这个也是没办法的事呢  钱果然是个好东西呢

不过想想那天跟小晴发答案 就很是搞笑 不过还好那老师蛮慈悲的  让她们自由发挥

说到这 不得不提下此女子可不是一般的人   人家是二班的呢 哈哈 看看这里就知道了

好了 下面继续

最近感觉比以前的境界提升了 对生活的感悟  更深了

不知道是不是因为牛奶的原因…呵呵

不过 牛奶真的很好喝啊  我同学都说我长高了 哇哈哈

嗯 这世界很奇妙

因为你不会知道会在什么时候 什么时间遇到一些有趣的人

生活就像魔术般 你永远不知道 它到底发生什么奇妙的事情

只有你体验了  慢慢去体会  慢慢努力

你会发现这个世界真的很美好

我记得我一直说生活很残酷 社会很现实

在你真正看透了生活的本质的时候

你还能这样坚持 那么你就及格了

生活依然在继续

接下来会发生些什么更好玩的事呢?

手机狂

最近很不顺,手机的内存卡坏了,导致我极度的郁闷了:不能上网了。很是郁闷了几天 ,后来几天的修复之下,勉强可以使用了。发现我已经那个爱上我的手机。

最近很不顺,手机的内存卡坏了,导致我极度的郁闷了:不能上网了。

很是郁闷了几天 ,后来几天的修复之下,勉强可以使用了。

发现我已经那个爱上我的手机。一旦手机不能用,我会陷入极度发狂的症状:

1.像看见屏幕上的按钮就习惯的用手指去点

2.玩同学的手机的时候有时一激动就喜欢用手去点击屏幕。。。

3.我喜欢乱丢手机的习惯

比如我拿着手机去我的同学宿舍串门,然后回来的时候 我的手上的手机就一定会不见了。

我甚 至都不知道我自己把手机放到哪里去了?

什么时候离开我的手的 ?什么时候拿过去的?

为此我同学都很郁闷 , 因为我第一个问他们我的手机呢?然后他们就集体鄙视我。。。

4.从餐桌上起身去洗手间时,我也一定会带上手机,尽管有的时候没有带在身上

我还是会习惯性的摸摸口袋,除了了睡觉之外

手机一旦离开我的身边 我一定会很是不安全

现在的后遗症是手指甲特别长 –为了能更好的触摸屏幕….

三级网络

上学期报考的三级网络技术,先前准备在暑假复习复习,后来,唉,计划跟不上变化啊。2009年09月10日
有些重要的事情耽误了,导致计划完全破产。现在开学一个星期了,正在努力看教程在。每天基本是花了三个小时去看书,现在差不多已经看了一半的了。
准备看完教程把思维导图做出来。

上学期报考的三级网络技术,先前准备在暑假复习复习,后来,唉,计划跟不上变化啊

2009年09月10日

有些重要的事情耽误了,导致计划完全破产。现在开学一个星期了,正在努力看教程在

每天基本是花了三个小时去看书,现在差不多已经看了一半的了。

准备看完教程把思维导图做出来。

2009年09月13日

时间已经不多了 昨天已经把重点的几章全部看完了 剩下Internet的几章还没看呢

在网上找到三级网络技术的笔记 呵呵 网络就是强大。

2009年09月18日

今天翘了一天的课,开始了一整天的复习  算是临阵磨枪吧 把所有笔试重点 全部看一遍,

网络技术基础、局域网基础、网络操作系统、Internet基础等等

晚上把全部的笔试中看完了,把机试的几个重点题型,copy出来,就去睡觉了

不过那是已经1点多了。

2009年09月19日 8:00

今天开始考试了,早上起得很早,7点就起来了

上了会qq,适当的改了下签名。不过现在已经不重要了

笔试的题目很一般化,相对比较来说没有08年4月的难,据我同学说比09年4月的还简单,不过想对我来说难度还是有的,毕竟复习时间太短了,不可能方方面面复习到,再说了,考试的知识点很琐碎,零星片段,很是烦人。

9点开考,差不多10左右我就做完了,剩下的就是不会做的了。很是痛苦,因为考的知识点我都没看过

经过一番痛苦的纠结,我提前15分钟交卷。

2009年09月19日 11:00
吃完饭,睡了一会觉 ,就起来开始做机试的题目了
题型很少就那么几个,主要的是for循环、选择排序、逻辑判断。就这几种了。
找了11个题目拿来来练手。从1点多 一直做到4点多,后来 直接去考试了。
运气很好,抽到一道、比较简单的题目。可惜,我后来发现我还做错了
大部分代码是正确的
只有一行代码的失误,但是导致结果跟正确答案是不一样的
据说,三级网络上机评分时根据是正确的代码行数/总的正确代码行数X100%。要是这样的话,兴许还过得了,
假如是电脑阅卷的话,那就不可能了。命运未卜。

OOP深入

以前只是在课堂学习过面向对象的技术,而在实际的编程时基本没有实践过的,呵呵,现在只好拣起来了。

以前只是在课堂学习过面向对象的技术,而在实际的编程时基本没有实践过的

呵呵 现在只好拣起来了 看看咯 oop详细解释见百度百科

面向对象:

封装
就是把类的内部隐藏起来
好处:减少耦合 ,类内部的实现可以自由地修改,类具有清晰的对外接口

数据隐藏
实现方法就是 访问限制修饰符
public
protected internal
internal
protected
private

继承性   inheritance
一个类可以有能力直接从另一个类获得其代码和数据
派生类从基类那里获得其所有的成员
C#只支持单继承
防止继承  public sealed class  classname

何时使用继承

代码重用,减少编写的代码量
设计重用 公用的字段和方法可以放到父类中,然后由其派生新的子类
子类有自己的字段和方法

多态性
是面向对象程序设计中的重要概念。
在运行时,可以通过指向基类的应用,来调用实现派生类中的方法。
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
多态性通过派生类覆写基类中的虚函数型方法来实现。

重载Overload 存在于同一类中
方法名必须相同
参数列表必须不相同
返回类型可以不相同

覆写Override 存在与继承关系的类中
只有虚方法和抽象方法才能覆写
相同的方法名称
相同的参数列表
相同的返回值类型

抽象方法 abstract
是必须被派生类覆写的方法
可以看成没有实现体的虚方法

虚函数
使用virtual关键字public virtual bool withdraw()

接口 interface
接口为类提供了蓝图
接口只提供定义
实现接口的数据类型必须提供接口成员的实现
接口本身可以从多个基接口派生

ps:

这里有一篇实例的OOP思想、工厂模式和重构

C#的接口