一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。
对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。类:类是一个模板,它描述一类对象的行为和状态。方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。编写 Java 程序时,应注意以下几点:
大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass。方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。Java 常量 常量在程序运行时是不能被修改的。 在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似: final double PI = 3.1415927;
变量 数据可以在同一类型范围内变化,Java中每个变量必须先声明,后使用。
作用域: 一对{}之间有效。格式: 数据类型 变量名 = 初始化值 ;类型: 成员变量和局部变量 - 在方法体外,类体中声明为成员变量。 - 在方法体内部声明的变量为局部变量。变量的作用域和生存期 变量的作用域: 作用域从变量定义的位置开始,到该变量所在的那对大括号结束; 生命周期: 变量从定义的位置开始就在内存中活了; 变量到达它所在的作用域的时候就在内存中消失了;命名规范 - 类名、接口名: 所有单词首字母大写。 - 包名: 所有字母都小写。(. 表示下一层) - 变量、方法名: helloWorld (首小其大) - 常量名: 所有字母大写,多单词用"_"连接.
1、用来标识类名、变量名、方法名、类型名、数组名及文件名的有效字符序列称为标识符。
①标识符由字母、下划线、美元符号$和数字组成,长度不受限制。②标识符的第一个字符不能是数字字符。③标识符不能是关键字 。④标识符不能是true、false和null(尽管它们不是Java关键字)。列如: hello、TigerYear_2010、$98apple.2、关键字:具有特定用途或被赋予特定意义的一些单词,关键字中所有字母都为小写。
Java中八大基本数据类型
1.逻辑类型 常量:true、false。 变量:使用关键字boolean来声明逻辑变量,声明时也可以赋给初值。 boolean male=true,off=false,isTriangle;
2.整数类型 byte型: 1个字节内存占8位,范围:-128~127. short型: 2个字节内存,范围:-2^15 ~ 2^15 -1. int型: 4个字节内存, 范围:-2^31 ~ 2^31 -1. long型: 8个字节占64位,范围:-2^63 ~ 2^63 -1.
3.字符类型 char型:2个字节内存占16位,范围:0~65535. 转义字符常量:\n(换行),\b(退格),\t(水平制表), '(单引号),"(双引号),\(反斜线)等。
4.浮点类型 float型:特别注意的是常量后面必须要有后缀f或F。保留8位有效数字,分配4个字节内存,占32位,取值范围:-2³¹ ~2³¹-1。 double型:分配8个字节内存,占64位。
5.按精度从低到高排列: (类型转换运算) byte short char int long float double. 1)当低级变量值赋给高级变量时,系统自动完成数据类型的转换。 如:float x=100; 2)当高>低时,必须使用类型转换运算,格式为(类型名)要转换的值。如int x=(int)34.89.
6.int类转换成String类型: ①String.valueOf(i); ②String s=Integer.toString(i); ③ i+"":一个int型的常量+上个空的字符串int+string型就是先把i转换为string,然后跟上后面的string。 7. String类型转int类型 int i = integer.parseInt(s);
引用类型
在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。对象、数组都是引用数据类型。所有引用类型的默认值都是null。一个引用变量可以用来引用任何与之兼容的类型。例子:Site site = new Site(“Runoob”)。整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
低 ------------------------------------> 高 byte,short,char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
不能对boolean类型进行类型转换。不能把对象类型转换成不相关类的对象。在把容量大的类型转换为容量小的类型时必须使用强制类型转换。转换过程中可能导致溢出或损失精度,例如:int i =128; byte b = (byte)i; //因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:(int)23.7 == 23; (int)-45.89f == -45
自动类型转换 必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
public class ZiDongLeiZhuan{ public static void main(String[] args){ char c1='a'; //定义一个char类型 int i1 = c1; //char自动类型转换为int System.out.println("char自动类型转换为int后的值等于"+i1); char c2 = 'A'; //定义一个char类型 int i2 = c2+1; //char 类型和 int 类型计算 System.out.println("char类型和int计算后的值等于"+i2); } }强制类型转换
条件是转换的数据类型必须是兼容的。格式:(type)value type是要强制类型转换后的数据类型 实例: public class QiangZhiZhuanHuan{ public static void main(String[] args){ int i1 = 123; byte b = (byte)i1;//强制类型转换为byte System.out.println("int强制类型转换为byte后的值等于"+b); } }隐含强制类型转换
整数的默认类型是 int。浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f。1.输出基本型数据 System.out.print()用于直接输出,System.out.println()也是直接输出,但在结束的地方会加一个换行 需要特别注意的是,在使用System.out. println() 或System.out.print()输出字符串常量时,不可以出现“回车”。输出字符串较长,可以分解成几部分,然后使用并置符号+将它们首尾相接。
public class Main{ public static void main(String[] args){ System.out.println("hello_1!"); System.out.print("hello_2!"); System.out.print("hello!_3"); } }2.输入基本型数据(Scanner) 如果你要进行输入,请一定加上两个包
import java.util.*; import java.io.*;请看下面例子用于输入单个字符
import java.io.*; import java.util.*; public class Main{ public static void main(String[] args)throws IOException{ Scanner sc=new Scanner(System.in); int a=sc.nextInt(); //输入一个整数 System.out.println(a); double b=sc.nextDouble(); //输入一个双精度的浮点数 System.out.println(b); String str=sc.next(); //输入一个单词,遇到分号则输入终止 System.out.println(str); String str2=sc.nextLine(); //输入一行,中间可有多个空格 System.out.println(str2); String str3=sc.readLine(); int a=Integer.parseInt(str2); //将str2转换为int,并复制给a System.out.println(a); String str4=sc.readLine(); double b=Double.parseDouble(str3); //将str3转换为double,并复制给b System.out.println(b); } }3.格式控制
由格式控制符号%d、%c、%f、%s和普通的字符组成,普通的字符原样输出,格式符号用来输出表达式的值。 %d:输出int类型数据。 %c:输出char型数据。 %f:输出浮点型数据,小数部分最多保留6位。 %s:输出字符串数据。输出数据时也可以控制数据在命令行的位置 %md:输出的int型数据占m列。 %0md:输出的int型数据占m列,不足在前补0. %m.nf:输出浮点型总占m列,小数点保留n位。 如: System.out.printf("%d, %f",12,23.78) ;4.随机数输出
Random ran=new Random(); ran.nextInt(n)-1; (n):随机输出(0~n);
1. 声明数组包括数组变量的名字(简称数组名)、数组的类型。 声明数组有下列两种格式:
数组的元素类型 数组名[]; 数组的元素类型 [] 数组名; (常用)
Java不允许在声明数组中的方括号内指定数组元素的个数。否则将导致语法错误。 如: int a[12]; 或 int [12] a; (错)
2)为数组分配元素 声明数组仅仅是给出了数组变量的名字和元素的数据类型,还需为数组分配元素,
格式:数组名 = new 数组类型 [数组个数]; 例如: boy = new float[4] ; 声明数组和创建数组可以一起完成。 float boy[] = new float[4]; 在声明后必须用new运算符为数组分配元素.
3)length的使用 数组的元素的个数称作数组的长度。对于一维数组,“数组名.length"的值就是数组中元素的个数;对于二维数组,“数组名.length"的值是它含有的一维数组的个数。 例如,对于
float a[] = new float[12]; int b[] []= new int[3] [6]; a.length的值12。而b.length的值是3。
数组的四个基本特点
其长度是确定的。数组一旦被创建,它的大小就是不能改变的。其中的元素必须是相同类型,不允许出现混合类型。数组中的元素可以是任何数据类型,包括基本类型和引用类型。数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身即是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。数组的创建实例
package com.kikikikikiku.array; public class ArrayDemo01 { public static void main(String[] args) { int sum=0; //1.声明一个数组 int[] nums; //2.创建一个数组 nums = new int[10]; //这里面可以放10个int类型的数字 System.out.println("数组为:"); //3.给数组元素赋值 for (int i = 0; i <nums.length; i++) { nums[i]=i+1; sum += nums[i]; System.out.print(nums[i]+" "); if (i==nums.length-1){ System.out.println(); } } //计算所有元素的和 System.out.println("所有元素的和为:"+sum); } }