您的位置:首页 > 编程语言 > Java开发

java基础语法(顺便回顾cpp语法并比较与java的异同)

2017-08-18 19:55 369 查看

变量、标识符、关键字与数据类型

1.标识符命名风格约定:

①不能以数字开头,也不能有%等符号。可以有 _和$但不用作开头。

②方法名、变量名首单词小写,其余单词首字母大写。如anyVariableName

③类名、接口名每个单词的首字母大写.如:LaserPrinter

④符号常量名所有单词字母均大写。如:RED

2.Java 语言是一种强类型语言。通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型。

3.java是区分大小写的 例如String关键字 S为大写

4.cpp中有的bool类型,在java中为boolean

5.为float变量赋值时数值后面要加f,不加f则前面的数据类型只能是double

6.java中的final关键字表现为cpp的const关键字作用(例如final String XXX)

另:习惯上常量名用大写字母

7.强制类型转换:
double a; int b=(int)a
(不四舍五入,直接截断小数位)

运算符

1.比较运算符和cpp相同,但是比较结果是false和true。比如:
System.out.println("hi " + (a>b));
结果为hi false或hi true。

但是在cpp中
cout<<(a>b)<<endl;
结果为0或1

2.自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量。

3.注意++和–在左边或是右边的区别

4./号和cpp中一样 int/int 结果只能是int,且也并不四舍五入,而是直接截断。

5.一个一直以来忽略的运算符:^异或。有且只有一个正确,在cpp中也相同。

6.条件运算符和cpp也是一样的。

语法形式:布尔表达式 ? 表达式1 :表达式2

运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值。

7.使用逻辑运算符的“短路”现象:&&左边表达式为false,则不会再检查(执行)右边表达式是否正确;相同的,若||左边表达式为true,则也不会检查(执行)右边表达式。

8.附表 运算符的优先级



流程控制语句

熟悉的if、switch、while、do…while和for语句都和cpp相同

至于其他还有没有了…臣妾不知道哇……

switch语句的语法回顾:

switch( )
{
case 1:
……
break;
case 2:
……
break;
case 3:case 4:
……
break;
default:
……
}


default那句不用break

1、 switch 后面小括号中表达式的值必须是整型或字符型

2、 case 后面的值可以是常量数值,如 1、2;也可以是一个常量表达式,如 2+2 ;但不能是变量或带有变量的表达式,如 a * 2

3、 case 匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到 break 语句或者 switch 语句块结束

default 块可以出现在任意位置,也可以省略

break跳出循环(只跳出一层) continue 结束这次循环马上进入下一次

输入输出和注释

输出:

System.out.println();
这样的输出是自带换行符的,若无需换行则用
System.out.print();


若输出有多个变量,则用+连接 例如“hello”+ int1

输入:

获取用户输入的信息可以使用Scanner工具类(位于java.util包中,使用时需导入)

1.在package下面那行写 import java.util.Scanner;

2.创建Scanner对象(例如 Scanner input=new Scanner(System.in);)

3.接收并保存用户输入的值(字符串:input.next() .nextDouble() .nextInt())

注释:

java中的行注释、段落注释和cpp中相同

文档注释方法:

/**

*/

另:可以通过 javadoc 命令从文档注释中提取内容,生成程序的 API 帮助文档。

使用文档注释时还可以使用 javadoc 标记,生成更详细的文档信息:

@author 标明开发该类模块的作者

@version 标明该类模块的版本

@see 参考转向,也就是相关主题

@param 对方法中某参数的说明

@return 对方法返回值的说明

@exception 对方法可能抛出的异常进行说明

数组

1.注意下标从0开始

2.java中 数据类型[ ] 数组名;或者 数据类型 数组名[ ];都是可以的形式 即int a[] 或者int[] a都可。但是int a[];时只是声明了数组类型的引用变量,并没有创建数组对象,此时内存中没有给数组分配空间。

3.但是 分配空间不能直接 int scores[3]这样,而应该是int scores[]=new int[3];或者 int[] scores=new int[]{1,2,3};使用后面这种方式时中括号里面不可以有数字。

4.例如数组名为scores 利用scores.lenth可以获取数组长度(最大下标为数组长度-1)

5.可用Arrays类操作java中的数组 也是在java.util包中(import java.util.Arrays;)

与cpp中一样 也可以用sort直接对数组进行排序

Arrays.sort(数组名); (cpp中为 sort(a,a+n)这样的形式 sort包含在algorithm头文件中)

默认均为升序排序

6.除此之外Arrays还提供其他的方法 如:

给数组赋值:通过fill方法。

比较数组:通过equals方法比较数组中元素值是否相等。

查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。

Arrays.toString(数组名);可以使用 toString( ) 方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开

7.java中并没有foreach关键字

但是可用for(元素类型 元素变量:遍历对象){}这样来达到foreach的效果

元素变量这个 是一个很神奇的东西

import java.util.Arrays;

public class HelloWorld {

public static void main(String[] args) {

// 定义一个整型数组,保存成绩信息

int[] scores = { 89, 72, 64, 58, 93 };

// 对Arrays类对数组进行排序

Arrays.sort(scores);

// 使用foreach遍历输出数组中的元素

for (int score:scores)
{
System.out.println(score)
}
}
}


类似于数组名叫foods 元素变量就是food 遍历对象就是foods

二维数组

声明:

数据类型[][] 数组名=new 数据类型[行的个数][列的个数];
//或
数据类型[][] 数组名;
数组名=new 数据类型[行的个数][列的个数];


在声明时赋值:

数据类型[][] 数组名={{,},{,},{,}}(此时为三行两列。外面的括号内为行数,里面的括号内为列数)

在定义二维数组时也可以只指定行的个数,然后再为每一行分别指定列的个数。如果每行的列数不同,则创建的是不规则的二维数组

例如:

int[][] num=new int[3][];
num[0]=new int[2];
num[1]=new int[3];
num[2]=new int[4];


在二维数组中 names.length为行数; names[某行].length为该行列数

方法

在个人的理解里,java中的方法,也即cpp中的函数,不过似乎java方法前面基本都会有public、protected和private这样的修饰符。(方法不是类!)

调用方法时 要先创建类的对象

对象名.方法名()来实现调用

例:

public class HelloWorld
{
public static void main(String[] args)
{
// 创建对象,对象名为hello
HelloWorld hello = new HelloWorld();
// 调用方法
hello.showMyLove();
}
//定义无参无返回值的方法
public  void   showMyLove()
{
System.out.println("LOVE you!");
}
}


1.方法的返回值最多只能有一个,不能返回多个值

2.方法的参数可以是基本数据类型,如 int、double 等,也可以是引用数据类型,如 String、数组等。

若返回值为数组 应为 int[] 方法名(变量)

例如:

//导入java.util.Arrays;

import java.util.Arrays;

public class HelloWorld {
public static void main(String[] args) {
// 创建对象,对象名为hello
HelloWorld hello = new HelloWorld();
// 调用方法并将返回值保存在变量中
int[] nums = hello.getArray(8);
// 将数组转换为字符串并输出
System.out.println(Arrays.toString(nums));
}

/*
* 功能:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值
* 定义一个带参带返回值的方法,通过参数传入数组的长度,返回赋值后的数组
*/
public int[] getArray(int length) {
// 定义指定长度的整型数组
int[] nums = new int[length];
// 循环遍历数组赋值
for (int i = 0; i < nums.length; i++)
{
// 产生一个100以内的随机数,并赋值给数组的每个成员
nums[i]=(int)(Math.random()*100);
}


注意其中产生随机数的方法
Math.random()*


方法的重载

重载:方法参数的个数、顺序或类型不同

判断方法重载的依据:

1、 必须是在同一个类中

2、 方法名相同

3、 方法参数的个数、顺序或类型不同

4、 与方法的修饰符或返回值没有关系
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java c++ 基础 语法 数组