Java 的基本语法、变量

2.1 Java 的基本语法


2.1.1 Java 代码的基本格式

修饰符 class 类名{
    程序代码
}

在编写Java代码时,血药特别注意几个关键:

  1. Java 中的程序代码可分为结构定义语句功能执行语句,其中,结构定义语句用于声明一个类或方法,功能执行语句用于实现具体功能。每条执行语句最后都必须用分号(;)结束。如下:

    System.out.println("这是第一个Java程序!");
    

    值得注意的是,程序不要将英文(;)误写成中文(;),否则编译器会报“illegal character”(非法字符)这样的错误信息。

  2. Java程序是严格区分大小写的;
  3. 在编写Java 代码时,为了便于阅读,通常会采用良好的方式进行排版,但这并不是必需的,出于可读性的考虑,应该让自己编写的程序代码整齐美观、层次清晰、通常会采用下面这种形式:

    public class HelloWorld{
        public static void main(String[] args){
            System.out.println("这是我的第一个java程序"); 
        }
    }
    
  4. Java 程序中一句连接的字符串不能分开在两行书写(为了便于阅读,对过长的字符串可以用(+)连接)
    例如:

    System.out.println("这是我的第一个"+
    "java程序");
    

2.1.2 Java 中的注释

1. 单行注释
单行注释通常用于对程序中的某一行代码进行解释,用符号“//”表示,“//”后面为被注释的内容,具体示例如下:

int c = 10;      //定义一个整形变量

2. 多行注释
多行注释顾名思义就是在注释中的内容可以为多行,它以符号“/* ”开头,以符号“*/”结尾,多行注释具体示例如下:

/* int c = 10;
   int c = 5; */

3. 文档注释
文档注释是以“/** ”开头,并在注释内容末尾以“*/ ”结束。文档注释是对一段代码概括的解释说明,可以使用javadoc命令将文档注释提取出来生成帮助文档,关于这点将在后面学习接触。

  1. 脚下留心
    在Java中,有的注释可以嵌套使用,有的则不可以,下面列出两种具体的情况。
    1、多行注释“/*…*/”中可以嵌套单行注释“//”,例如:

    /* int c = 10;     //定义一个整形变量
       int c = 5; */
    

    2、多行注释“/*…*/”中不能嵌套多行注释“/*…*/”,例如:

    /* 
        /* int c = 10;  */
        int c = 5; 
       */ 
    

    上面的代码无法通过编译的

2.1.3 Java 中的标识符

在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如包名、类名、方法名、参数名、变量名等,这些符号被称为标识符。标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是Java的关键字,否则代码在编译时会报错。

  • 为了增强代码的可读性,建议初学者在定义标识符时还应该遵循以下规则:

    1. 项目的命名规则:单词首字母大写(英文);
    2. 包的命名规则:所有字母一律小写,公司域名的倒序(com.baidu);
    3. 类的命名规则:类名首字母大写;
    4. 常量名命名规则:所有字母都大写,单词之间用下划线(_)连接,例如DAY_OF_MONTH;
    5. 变量名命名规则:首字母(字母;下划线‘’;美元符号‘’)其余部分(任意字母,任意数字,‘’,’$’)不能是关键字

2.1.4 Java 中的关键字

关键字是编程语言里事先定义好并赋予了特殊含义的单词,也称作保留字。和其他语言一样,Java中保留了许多关键字,例如,class、public等。

  • 所有的关键字都是小写的;
  • 程序中的标识符是不能以关键字命名的。

2.1.5 Java 中的常量

常量就是在程序中固定不变的值,是不能改变的数据。例如数字1、字符’a’、浮点数3.2等。在Java中,常量包括整形常量、浮点数常量、布尔常量、字符常量等。
1. 整形常量(二进制、八进制、十进制、十六进制4种表达形式)

  • 二进制:有数字0和1组成的数字序列。JDK7.0允许字面值来表示进制数,前面以0b或0B开头,为了和十进制区分,如:0b01101100、0B10110101。
  • 八进制:以0开头并其后由0~7范围内(包括0和7)的整数组成的数字序列。如:0342。
  • 十进制:由数字0~9范围内(包括0~9)的整数组成的数字序列。如198。
  • 十六进制:以0x或者0X开头并且其后由0~9、A~F(包括0和9、A和F)组成的数字序列。如:0x25AF。

2.浮点数常量(float单精度浮点数、double双精度浮点数)
其中,单精度浮点数后面以F或f结尾,而双精度浮点数则以D或d结尾。

2e3f   3.6f   0f  3.9d   5.201+12f

3.字符常量

'a'  '1'  '&'  '\r'  '\u0000'

上面的示例中,’\u0000’表示一个空白字符,即在单引号之间没有任何字符。之所以能这样表示,是因为Java采用的是Unicode字符集,Unicode字符以’\u’开头,空白字符在Unicode码表示中对应的值为’\u0000’。

4.字符串常量

"HelloWorld"  "123"  "Welcome \n XXX"  ""

一个字符串可以包含一个字符或多个字符,也可以不包含任何字符,及长度为零。

5.布尔常量
布尔常量即布尔型的两个值true和false,该常量用于区分一个事物的真与假。

6.null常量
null常量只有一个值null,表示对象引用为空。


扩展

整形常量进制之间的转换
引用
引用
引用

特殊字符—-反斜杠(\)是特殊字符,被称作转义字符。下面常见的转义字符:

  • \r 表示回车符,将光标定位到当前行的开头,不会跳到下一行。
  • \n 表示换行符,换到下一行的开头。
  • \t 表示制表符,将光标移到下一个制表符的位置,就像在文档中用Tab一样。
  • \b 表示退格符,就像键盘上的Backspace键。

2.2 Java 的变量


2.2.1 Java 变量的定义

在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元被称为变量,定义的标识符就是变量名,聂村单元中存储的数据就是变量的值。

int x= 0,y;
y=x+3;

上面代码中,第一行代码的作用是定义了两个变量x和y,也就相当于分配了两块内存单元,在定义变量的同时为变量x分配了一个初始值0,而变量y没有分配初始值。如图2-2所示;
第二行代码的作用是为变量赋值 ,在执行第二行代码,程序首先取出变量x的值,与3相加后,将结果赋值给变量y,此时变量x和y在内存中的状态发生了变化,如图2-3所示。
这里写图片描述

2.2.2 Java 变量的数据类型

在Java中变量的数据类型分为两种,即基本数据类型和引用数据类型。如图
这里写图片描述
这里写图片描述
这里写图片描述

  • 输出Java课考试最高分:98.5
  • 输出最高分学员姓名:张三
  • 输出最高分学员性别:‘男’

    public class Example01 {
        public static void main(String[ ] args) {
               double score = 98.5;    
               String name = "张三"; //双引号
               char sex = '男'; //单引号
    
               System.out.println("本次考试成绩最高分: " + score);//连接输出信息
               //输出其他……
         }
    }
    

2.2.3 Java 变量的类型转换

程序中经常会遇到要将数据类型进行转换的情况(如:在一个表达式中存在不同类型的操作数时),数据类型转换有两种情况:

  • 自动类型转换

    /**
      *
      *某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分?
      */
    
    class Example02{
        public static void main(String[] args){
    
            double firstAvg = 81.29;  //第一次平均分
            double secondAvg;         //第二次平均分
            int rise = 2;
    
            secondAvg = firstAvg + rise; //自动类型转换
    
            System.out.println("第二次平均分是:"  + secondAvg);
    
        }
    }
    

    在某种条件下,系统自动完成类型转换:
    –两种类型兼容
    例如:int 和 double 兼容
    –目标类型大于源类型
    例如:double 型 大于 int 型
    –对于表达式
    如果一个操作数为double型,则整个表达式可提升为double型

  • 强制类型转换

    /**
      *
      *去年Apple笔记本所占的市场份额是20,今年增长的市场份额是9.8,求今年所占的份额?
      *
      */
    
    class Example03{
        public static void main(String[] args){
    
            int before = 20;     //apple笔记本市场份额
    
            double rise = 9.8;     //增长的份额
    
            int now = before + rise;    //现在的份额 /*编译出错:不能完成
        自动类型转换。
        *应该更改为:int  now = before + (int)rise;   //强制类型转换
        */
    
        }
    }
    

    在某种条件下,需要程序员强制转型
    –两种类型兼容
    例如:int 和 double 兼容
    –目标类型小于源类型
    例如:int 型小于double 型

  • 定义:不同数据类型之间互相转换
    1、自动类型转换
    char -> int byte | short -> int
    int -> long int -> double int -> float float -> double
    2、强制类型转换
    在八种基本数据类型中,基本一般是将高精度,长类型数据转换成低精度,短类型数据,如:
    double -> float , long -> int , int -> char| byte| short

    在引用数据类型中,一般是将有继承关系的类进行强转。

2.2.4 Java 变量的作用域

变量需要在它的作用域范围内才可以被使用,这个作用范围称为变量的作用域。下面用个案例熟悉变量的作用域。

class Example03{
    public static void main(String[] args){
        int x=12;                       //定义了变量x
        {
            int y=96;
            System.out.println("x is"+x);//访问变量X
            System.out.println("y is"+y);//访问变量y
        }
        y=x;                             //访问变量X,为变量y赋值         
        System.out.println("x is"+x);    //访问变量X

    }
}

编译程序报错,结果如图2-4所示:

这里写图片描述
出错的原因在于在给变量y赋值时超出了它的作用域。去掉第九行,则编译成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值