黑马程序员技术交流社区
标题: java与C#的变量有何不同? [打印本页]
作者: 王永杰 时间: 2012-9-14 13:42
标题: java与C#的变量有何不同?
本帖最后由 王永杰 于 2012-9-14 13:43 编辑
第二节 变量
java代码
--------------------------------------------------------------------------------
变量是Java 程序的一个基本存储单元。变量由一个标识符,类型及一个可选初始值的组合定义。
此外,所有的变量都有一个作用域,定义变量的可见性,生存期。接下来讨论变量的这些元素。
在Java 中,所有的变量必须先声明再使用。
基本的变量声明方法如下:type identifier [ = value][,identifier [= value] ...] ;
type 是Java 的基本类型之一,或类及接口类型的名字(类和接口类型在本书第1部分的后部讨论)。
标识符(identifier )是变量的名字,指定一个等号和一个值来初始化变量。
请记住初始化表达式必须产生与指定的变量类型一样(或兼容)的变量。
声明指定类型的多个变量时,使用逗号将各变量分开。
以下是几个各种变量声明的例子。注意有一些包括了初始化。
--------------------------------------------------------------------------------
package cn.Test;
public class VarTest {
/**
* (整数)存放整数类型的数据
*/
static int i = 1; //变量i
static int i1 = 10000;//变量i1
static int i2, i3=0, i4; //未赋值的变量 i2、i3、i4;
/**
* long(实数)
*/
static long l = 1L; //变量 l;
static long l1 = 1000; //变量 l;
static long l2 = 100L; //变量 l;
/**
* float(实数)
*/
static float f = 001; //变量 f;
static float f1 = 1; //变量 f1;
static float f2 = 1.1F; //变量 f2;
/**
* char(字符) 存放字符类型的数据
*/
static char c = 'a'; //变量c
static char c1, c2; //未赋值的变量 c1、c2;
/**
* boolean(布尔)只有两个值 true 和 false
*/
static boolean b = true; //变量 b;
static boolean b1 = false;//变量 b1;
static boolean b2; //未赋值的变量 b2;
/**
* string(字符串)用了存放字符串的数据
*/
static String s = "abc"; //变量s
static String s1, s2="def"; // 未赋值的变量 s1、s2;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(i +","+ i1 +","+i2 +","+ i3 +","+ i4);
System.out.println(l +","+ l1 +","+ l2);
System.out.println(f +","+ f1 +","+ f2);
System.out.println(c +","+ c1 +","+ c2);
System.out.println(b +","+ b1 +","+ b2);
System.out.println(s +","+ s1 +","+ s2);
}
}
C# 代码
--------------------------------------------------------------------------------
其实变量在C#中与java的是一样的,不当是他们一样在C语言中也是类似的(还有其他语言)。
变量在C#中与java中的声明也是一样的,所以我就不多说了,但是他们在一些类型上的取值是
有一些区别的下面的代码大家运行下就会发现有些微软的区别,这些地方是需要大家注意的。
被在学习中给混淆了。
--------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace VarTest
{
class Program
{
/**
* int(整数)存放整数类型的数据
*/
static int i = 1; //变量i
static int i1 = 10000;//变量i1
static int i2, i3=0, i4; //未赋值的变量 i2、i3、i4;
/**
* long(实数)
*/
static long l = 1L; //变量 l;
static long l1 = 1000; //变量 l;
static long l2 = 100L; //变量 l;
/**
* float(实数)
*/
static float f = 001; //变量 f;
static float f1 = 1; //变量 f1;
static float f2 = 1.1F; //变量 f2;
/**
* char(字符) 存放字符类型的数据
*/
static char c = 'a'; //变量c
static char c1, c2; //未赋值的变量 c1、c2;
/**
* bool(布尔)只有两个值 true 和 false
*/
static bool b = true; //变量 b;
static bool b1 = false;//变量 b1;
static bool b2; //未赋值的变量 b2;
/**
* string(字符串)用了存放字符串的数据
*/
static string s = "abc"; //变量s
static string s1, s2="def"; // 未赋值的变量 s1、s2;
static void Main(string[] args)
{
Console.WriteLine(i + "," + i1 + "," + i2 + "," + i3 + "," + i4);
Console.WriteLine(l + "," + l1 + "," + l2);
Console.WriteLine(f + "," + f1 + "," + f2);
Console.WriteLine(c + "," + c1 + "," + c2);
Console.WriteLine(b + "," + b1 + "," + b2);
Console.WriteLine(s + "," + s1 + "," + s2);
Console.ReadKey();
}
}
}
什么是变量?
变量,是指没有固定的值,可以改变的数。变量以非数字的符号来表达,一般用拉丁字母。变量是常数的相反。变量的用处在于能一般化描述指令的方式。若果只能使用真实的值,指令只能应用于某些情况下。变量能够作为某特定种类的值中任何一个的保留器。
变量用于开放句子,表示尚未清楚的值(即变数),或一个可代入的值(见函数)。这些变量通常用一个英文字母表示,若用了多于一个英文字母,很易令人混淆成两个变量相乘。n,m,x,y,z是常见的变量名字,其中n,m较常表示整数。
什么时候定义变量?
数据不确定的时候,需要对数据进行存储的时候就需要定义变量来完成存储动作
总结要素:以上内容比较发现 C#跟java的变量的声明非常类似,在调用中也没什么区别,但是就是变量的类型取值的时候,各种类型的取值
范围与一些类型的默认值上有些微弱的区别这也是大家要注意的地方。
还有提示一下,其实上面代码中还有非常多的细节我没有标明,当然或许还有一些细节我也不太清楚,那么就需要大家讨论下了,到底这两段代码中究竟有哪里地方要重视呢? 比如说: static int i2, i3=0, i4; //未赋值的变量 i2、i3、i4; 中 i2,i3,i4的不同之处与注意之处。希望大家能认真观察。
作者: 黑马连家华 时间: 2012-9-14 13:47
目前只玩java的表示 暂时不需要知道他们的区别
作者: 王永杰 时间: 2012-9-14 14:08
黑马连家华 发表于 2012-9-14 13:47
目前只玩java的表示 暂时不需要知道他们的区别
(⊙o⊙)… 哦! 其实我就是想把这东西好好的复习一下。没别的意思。
作者: 子龍 时间: 2012-9-14 14:19
{:soso_e140:} 不会吧,这就被人给打击了啊。不过该努力还是努力吧。这里不让发,可以自己总结起来,回头我们找找好的交流论坛。推荐给你,也建议黑马开个这样的区,毕竟黑马都交我想同学互相交流的时候不免会遇到一些尴尬的地方,而且论坛的版块分的又那么近,我们的进进出出不免会在论坛中互相讨论中。唉!不过你还是努力吧!该支持你还是支持你的。至于别人我就不干涉了。一起努力吧!
作者: 王永杰 时间: 2012-9-14 14:25
子龍 发表于 2012-9-14 14:19
不会吧,这就被人给打击了啊。不过该努力还是努力吧。这里不让发,可以自己总结起来,回头我 ...
嗯 是有点打击,看来我的思考一下了。今天就不发这些了。
作者: 黑马连家华 时间: 2012-9-14 15:00
王永杰 发表于 2012-9-14 14:08
(⊙o⊙)… 哦! 其实我就是想把这东西好好的复习一下。没别的意思。
不会是在说我打击你了吧?我是说我学java所以不需要知道他们的区别
如果你以前学过c或者java和C一起学的话 你每学一点就分析他们的异同点 这样做非常好
没打击你啊兄弟
作者: 王永杰 时间: 2012-9-14 15:09
黑马连家华 发表于 2012-9-14 15:00
不会是在说我打击你了吧?我是说我学java所以不需要知道他们的区别
如果你以前学过c或者java和C一起学的话 ...
弱弱的问一句你是不是黑马人啊?我还以前面加黑马的是管理论坛的呢?你那么一说我还以为这里发帖会影响你们呢?唉!是我多心了。
作者: 黑马连家华 时间: 2012-9-14 15:17
吓死你吧
作者: 王永杰 时间: 2012-9-14 18:33
黑马连家华 发表于 2012-9-14 15:17
吓死你吧
你太坏了! 呵呵 那就乐死你把!!!
作者: 丁旭 时间: 2012-9-14 18:37
具体说不上来,但应该在变量类型种类、变量类型命名、变量定义格式、变量初始化值上有略微的不同吧。
底层的内存分配应该是一致的。
作者: 王永杰 时间: 2012-9-15 01:25
丁旭 发表于 2012-9-14 18:37
具体说不上来,但应该在变量类型种类、变量类型命名、变量定义格式、变量初始化值上有略微的不同吧。
底层 ...
其实看起来还是非常相似的,能看明白的地方也就是在数据类型的一些默认值上有些微弱的差别。变量的转换应用中的差距还需要总结。
作者: 子龍 时间: 2012-9-19 13:17
最近 怎么没见你做总结了啊?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |