JAVA第四天
package : ? 包 : ???? package写在源文件的第一行 ???? 作用:装 .java 源文件 ??? ?: 区别可能同名的源文件 ??? ?: 可以把具有相同/类似功能的类放到同一个包中 ???? 具有package的源文件,编写,编译,运行 ??? 编译:javac -d bin src/Test1.java ????????? -d:把编译以后的.class文件放到指定目录下(bin) ??? 运行:java -cp bin com.briup.ch2.Test1 ??? ? -cp:运行指定目录中的类 ??? ????? 这个目录可以是文件夹,也可以是jar包 ? ? ? ? ? 代码:jar -cvf hello.jar HelloWorld.class ? import 导入: (导包) ??? 当前类中使用Test1 ??? ch1/Test1.java ??? ch2/Test1.java ? ??? import ch1.Test1 ??? main(){ ??? new Test1(); ??? new ch2.Test1(); ??? } ? 注释:编译的时候会删除所有注释 ??? //单行 ??? /* 多行 ??? ??? */ ??? 文档注释:使用javadoc生成api ??? /** ????? @param ????? @return ????? @author ????? @version ??? */ ? 空格 : ??? 分隔关键字;类型 和 变量名; ??? 优化代码格式 ? 代码块 : ??? 代码需要写到代码块中,有名字的代码块就是方法。 ??? { ??? ??? } 第一部分:java代码中的注释 ??? 1.1:单行注释? 语法:? // ??? 1.2:多行注释? 语法:? /* 多行内容 */ ??? 1.3:文档注释? 语法:? /**注释内容 */ ??????? @author? 作者 ??????? @version? 版本 ??????? @param??? 方法的参数 ??????? @return?? 方法返回类型 ??????? @exception 返回抛出的异常 ? ??? 1.4:注释不会被编译器编译到.class文件中 ??? 1.5:文档注释 会被javadoc命令产生到帮助文档中 ??????? javadoc -d 目录 CommentTest.java ??????? javadoc -encoding utf-8 -d mydoc CommentTest.java ??????? javadoc -encoding utf-8 -d mydoc -author -version CommentTest.java ??????? javadoc -encoding utf-8 -d mydoc -author -version *.java ? 第二部分:分号,空格和块 ??? 1,分号: java中一句代码(语句)以分号结尾,必须出现。 ??? ??? 注:大括号后面可以不加 ??? 2,空格: 空格? tab? 回车 换行? 都是为了格式的好看出现,没有实际功能。 ??????? eg: int?????????????????? abc ??????????????????????????????????????? = ??????????????????????????????????????????? 10; ??????? ??? 等价于 :? int abc = 10; ??? 3,块:又名为代码块 : 基础写法是 {} ? ??????? 知识点速记: 代码必须写在方法中,有名字的代码块就是方法。 ? 第三部分:标识符 标识符 ?? package名:全小写 ?? 类名:首字母大写,剩下的单词驼峰命名法则 ?? 方法名:首字母小写,剩下的单词驼峰命名法则 ?? 变量名:首字母小写,剩下的单词驼峰命名法则 ? ??? 1,java什么地方会用标识符:类名,方法名和变量名 ??? 2,标识符的约束: ??? ?? 1) java标识符以字母、_和$开头,不能以数字开头,后跟字母、数字、“_”和“$”的组合; ??? ?? 2) 大小写敏感 ??? ?? 3) 没有长度限制。 ??? ?? 4) 不能是java中的关键字 ??? 3,标识符样例 ??? ????? 合法????? ? 非法 ??? ????? try1??????????????? try# ??? ? GROUP_7??????????????? 7GROUP ??? ? openDoor?????????????? open-door ??? ? boolean1????? ?????????boolean ? 第四部分: 关键字 ??? ?Java语言的关键字是程序代码中的特殊字符。包括: ??? ?. 类和接口的声明——class,extends,implements,interface ??? ?. 包引入和包声明——import,package ??? ?. 数据类型——boolean,byte,char,double,float,int,long,short ??? ?. 某些数据类型的可选值——false,true,null ??? ?. 流程控制——break,case,continue,default,do,else,for,if,return,switch,while ??? ?. 异常处理——catch,finally,throw,throws,try ??? ?. 修饰符——abstract,final,native,private,protected,public,static,synchronized,transient,volatile ??? ?. 操作符——instanceof ??? ?. 创建对象——new ??? ?. 引用——this,super ??? ?. 方法返回类型——void ? ??? ?Java语言的保留字是指预留的关键字,它们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。 ??? ?. 所有关键字都是小写; ??? ?. friendly,sizeof不是Java语言的关键字,这有别于C++; ??? ?. 程序中标识符不能以关键字命名; ??? 第五部分:数据类型中基本数据类型 ? 数据类型:规定数据在内存所占用的空间 ?? 基本数据类型:? 0101? 4bit ????? *byte 字节? 8位 bit? ??????? 0000 0000 ??????? 1111 1111? -128 ??????? 0111 1111?? 127 ????? short 短整型 16位 ????? *int? 整型?? 32位???? 10 ????? *long 长整型 64位???? 10L ? ????? *float 单精度浮点型 32位?? 10.11f ????? *double 双精度浮点型64位?? 10.11 ? ????? boolean? true false ? ????? char??? 两个字节表示一个字符 16位 ??? ????? 一次只能表示一个字符 ??????? 数字 ??????? 字母 ??????? 普通字符 ??????? 中文汉字 ??? ??? 表示特殊字符: 使用转义字符[]将特殊含义的字符转换为没有特殊含义的普通字符 ????? char a = ‘‘‘; ????? char a = ‘‘ ? ? ? ? ?? 引用数据类型: ????? 类类型: ??? String msg = "tom"; ????? 接口类型 ????? 数组类型 ? 变量 : 用来承载一个数据 ?????? 为了后期操作数据方便 ? 声明变量: ??? 数据类型 变量名; ? 给变量赋值: ??? 变量名 = 数据类型对应的值; ? 使用变量: ??? syso(变量名); ? ? 简写 : ??? 数据类型 变量名 = 数据类型对应的值; ? ? 同时声明多个变量: ?????? 数据类型 变量名1,变量名2,...; ? 同时声明多个变量并且赋值 ????? 数据类型 变量名1=值,变量名2=值....; ? ? ? 字符: ??? char a = ‘a‘; ??? char a = ‘1‘; ??? char a = 97; ??? char a = 0x0061; ??? char a = ‘u4e06‘// 厂 ??? char a = ‘中‘; Unicode/utf-8编码 : 两个字节 表示一个字符 ? ASCII 0-127? ‘"A-z gb2312 : 中文 gbk : 中文 iso-8859-1 ? 编码: ?utf-8 ?? 0100 1010 中 ?? 0100 1110 国 ?gbk ?? 三个字节一个字符 ?? 0100 1010 0000? ? ?? 这耐宁 --->? 山西方言 utf-8 ??? ? --->? 普通话? gbk ? ??? 1,java中数据类型包括 ??? ?基本数据类型:float double byte short int long char boolean ??? ?引用数据类型:类类型 接口类型 数组类型 ??? 2,什么是数据类型 ??? ?数据类型决定了如何将代表这些值的位存储到计算机的内存中 ? ??? 3,位: bit: ??? ? 在数字电路和电脑技术中采用二进制,代码只有"0"和"1",其中无论是"0"或是"1"在CPU中都是一"位"。 ??? ? eg: 0000 1111 ---> 8位? 8bit ??? 4,字节: byte ??? ? 字节是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于有八位,也表示一些计算机编程语言中的数据类型。 ? ??? 知识点速记: 一个字节 等于 8 位。 eg: 一个字节 = 0000 0000 ??? 5,基本数据类型中的长度 ??? ? byte??? 8位? 0000 0000 ??? ? short?? 16位 0000 0000 0000 0000 ??? ? int???? 32位 0000 0000 0000 0000 0000 0000 0000 0000 ??? ? long??? 64位 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ??? ? float?? 32位 0000 0000 0000 0000 0000 0000 0000 0000 ??? ? double? 64位 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ??? ? boolean? 不讨论 ??? ? char??? 16位 ? ??? 6,字符编码:java使用的是Unicode(UCS-2)(utf-8) ??????? 字符编码:指用一串二进制数据来表示特定的字符 ??????? 1,ASCII 编码 ??????????? 主用于表达现代英语和其他西欧语言中的字符。它是现今最通用的单字节编码系统,它只用一个字节的7位,一共表示128个字符 ??????? 2,ISO-8859-1编码 ??????????? 国际标准化组织(ISO)为西欧语言中的字符制定的编码,兼容ASCLL编码 ??????? 3,GB2312编码 ??????????? 简体中文字符的编码它与ASCII字符编码兼容,收录了7445个字符 ??????? 4,GBK编码 ??????????? 对GB2312字符编码的扩展收录了21886个字符 ??????? 5,Unicode字符编码 ??????????? 收录了全世界所有语言文字中的字符,是一种跨平台的字符编码。 ??????? ? 5.1:UCS(Universal Character Set)是指采用Unicode字符编码的通用字符集。 ??????? ????? Unicode具有两种编码方案: ??????? ?????? . 用2个字节(16位)编码,被称为UCS-2,Java语言采用; ??????? ?????? . 用4个字节(32位)编码,被称为UCS-4; ??????? 6,UTF编码 : 衍生编码 ??????????? ?有些操作系统不完全支持16位或32位的Unicode字符编码,UTF(UCS Transformation Format)字符编码能够把Unicode字符编码转换为操作系统支持的编码 ??????? 知识点速记:java使用Unicode编码,java代码都是utf-8编码 ? ? ??? 7 : 字符的取值 ??????? 以下4种赋值方式是等价的: ??? ??? 字符用单引号引着(英文输入法下面的单引号) ??? ??? 字符串用双引号引着 ? ??? ??? char c = ‘a‘; ??? ??? char c = ‘u0061‘;????? //设定"a"的十六进制数据的Unicode字符编码 ??? ??? char c = 0x0061;??????? //设定"a"的十六进制数据的Unicode字符编码 ??? ??? char c = 97;??????????? //设定"a"的十进制数据的Unicode字符编码 ? ??? ??? 其他一些例子: ??? ??? char a1 = ‘a‘;? ?? //一个字母 ??? ??? char a2 = ‘中‘; ?? //一个中文字符 ??? ??? char a3 = ‘u0060‘???? //unicode编码 ? ??? 8,转义字符: ??????? 1,作用:把java中含有特殊含义的字符转变为没有任何含义的字符。 ??????? 2,写法:?? 特殊字符 ??????? 3,转义字符的常见使用 ??????? ??? n??? 换行符,将光标定位到下一行的开头; ??????? ??? t??? 垂直制表符,将光标移到下一个制表符的位置; ??????? ??? ??? 反斜杠字符 ??????? ??? ‘??? 单引号字符 ??????? ??? "??? 双引号字符 ??? 9,整数类型: ??????? byte short int long : 都是整数类型:java中都是有符号整型,第一位是符号位。 ??????? java中 八进制为 0 开头 ??????? java中 16进制为 0x开头 ? ??????? 注意:在使用long类型的时候需要使用L标明 ??????????? eg: long a = 10;? 错误写法 ??????????????? long a = 10L; 正确写法 ??? 10,浮点类型:小数类型 ??????? 注意:使用浮点型的时候也需要注明 ??????? float :?? f 占四个字节,称为单精度浮点型 ??????????? eg:float a = 10;? 错误写法 ??????????? ?? float a = 10f; 正确写法 ? ??????? double:?? d 占八个字节,称为双精度浮点型 ??????????? eg:double a = 10;? 错误写法 ??????????? ?? double a = 10d; 正确写法 ??????? ??????? 注:浮点型的取值范围是无穷大+NaN ??????????? NaN:一个常数,持有float类型的非数字(NaN)值。? ??????????????? ?float f1 = (float)(0f/0f); ? ?注意: 数据类型的转换问题:: 位数越大? 大 ? 大 转 小? : 强制类型转换 ??? int a = (int)10L; ? ? 小 转 大? : 隐式类型转换 ??? long a = 10; ? ? 第六部分:变量的声明和赋值 ??? 1,为啥用变量:程序是利用计算机对数据的快速计算能力完成一些功能。 ??????? 变量就是为了让程序员更好的使用指定的数据 ??? 2,变量的作用: ??? ??? 变量可以用来存储 一个 数据,给这个数据起了名字(变量名)方便程序员使用该变量 ? ??? 3,怎么声明变量: ??????? 语法:? 数据类型? 变量名; ??????? ?????? 数据类型? 变量名,变量名,变量名; ??????? 注意 :声明完变量以后,这个变量是没有指定数据的 ??? 4,给变量赋值: 即给变量指定数据 ??????? 语法:? 变量名 =? 值; ? ??? 变量的声明和赋值可以写在一起: ??????? 数据类型 变量名 =? 值; ??????? 数据类型 变量名 = 值,变量名 = 值,变量名=值; ? ??? 知识点速记:变量如果要使用,一定要赋值。 ??????? 先声明再赋值最后使用。 ? 第七部分:基本类型之间的转换 ??? 隐式转换 :? 小类型---转换为--->大类型 ??? 显示转换 :? 大类型---转换为--->小类型 ? ??? eg: ??? int a = 10; ??? byte b = a;//错误,a 是int 类型,b 是小类型,把大类型的值符给小类型,需要强制类型转换,即显示转换. ? ??? eg: ??? int? a = 10; ??? long b = a; //正确: a 是int 类型 ,b是long 类型, ? 第八部分:类 ??? 1,什么是类 ??????? 类是一组具有相同属性和行为对象的模板 ??????? 类是java中一种复杂的数据类型, ??? 2,类的作用是什么 ??????? 复杂的数据在内容中如果存放,如何操作 ? ??????? 知识点速记:类是一个模板,用来存放和操作数据. ? ??? 3,怎么编写一个类 ??? ?? 创建类:在后缀为.java的文件中使用class关键字创建. ??????? ?class 类名 { ??????? ???? String name; ??????? ???? int age; ??????? ?} ? ??????? ?注意这个类,我没有加pulibc关键字, ? ??? 4,怎么使用一个类 ??? ? 类是一个模板,如果要使用的话,是使用模板产生的某一个对象。每个对象都是唯一的。 ? ??? ? 怎么使用模板产生对象? ??? ???? 使用new 关键字产生对象 ??????? ?eg: ??????? ?Student stu = new? Student(); ? ??? ?? 一个模板可以产生多少个对象? ??????? 一个模板可以产生N多对象,每个对象都是不一样的。 ??????? 每个对象都是某个类的实例 ??????? 同一个类的所有实例都有相同属性,但属性取值不一事实上相同 ??????? 同一个类的所有实例都有相同行为,意味着它们具有一些相同的功能 第九部分:main方法: ??? 1,程序的主入口: ??????? 当执行命令 java HelloWorld 的时候就会找HelloWorld这个类中的主方法,程序会从主方法开始向下运行。 ??? 2,如果main在public修饰的类中,是没有效果的,没办法找到main类 ??? 3,public static void? main(String[] args){} 主方法的args 是用来接收参数的。这个参数在执行java HelloWorld命令的时候可以携带。 ??????? eg: java HelloWorld? 1 tom abc ??? ??? 解释: 执行HelloWorld类中的main方法 并且 把 1? tom? abc 三个值传入到main方法参数的args中。 ??? 4,static public void? main(String args[]){} ??? 4,public static void? main(String args[]){} ??? 4,public static void? main(String... args){} ??? 这三种写法都是代表main函数。 ? ??? ??? 普通方法,声明 ??? public void 方法名(参数列表){ ??????? ??? } ??? 普通方法的调用, ??????? 这个普通方法位于哪个类中,就需要使用哪个类对象.方法名(参数);进行调用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |