加载中...

javascript


其中 Y=java

源代码下载: LearnJava-zh.java

Java是一个通用的程序语言, 包含并发, 基于类的面向对象等特性 阅读更多

  1. // 单行注释
  2. /*
  3. 多行注释
  4. */
  5. /**
  6. JavaDoc(Java文档)注释是这样的。可以用来描述类和类的属性。
  7. */
  8. // 导入 java.util中的 ArrayList 类
  9. import java.util.ArrayList;
  10. // 导入 java.security 包中的所有类
  11. import java.security.*;
  12. // 每个 .java 文件都包含一个public类,这个类的名字必须和这个文件名一致。
  13. public class LearnJava {
  14. // 每个程序都需要有一个main函数作为入口
  15. public static void main (String[] args) {
  16. // 使用 System.out.println 来输出到标准输出
  17. System.out.println("Hello World!");
  18. System.out.println(
  19. "Integer: " + 10 +
  20. " Double: " + 3.14 +
  21. " Boolean: " + true);
  22. // 如果要在输出后不自动换行,可以使用System.out.print方法。
  23. System.out.print("Hello ");
  24. System.out.print("World");
  25. ///////////////////////////////////////
  26. // 类型与变量
  27. ///////////////////////////////////////
  28. // 用 <type> <name> 来声明变量
  29. // 字节类型 - 8位补码表示
  30. // (-128 <= 字节 <= 127)
  31. byte fooByte = 100;
  32. // 短整型 - 16位补码表示
  33. // (-32,768 <= 短整型 <= 32,767)
  34. short fooShort = 10000;
  35. // 整型 - 32位补码表示
  36. // (-2,147,483,648 <= 整型 <= 2,147,483,647)
  37. int fooInt = 1;
  38. // 长整型 - 64位补码表示
  39. // (-9,223,372,036,854,775,808 <= 长整型 <= 9,223,372,036,854,775,807)
  40. long fooLong = 100000L;
  41. // L可以用来表示一个数字是长整型的。
  42. // 其他的数字都默认为整型。
  43. // 注意:Java中没有无符号类型
  44. // 浮点型 - 即 IEEE 754 规定的32位单精度浮点类型
  45. float fooFloat = 234.5f;
  46. // f用来表示一个数字是浮点型的。
  47. // 否则会被默认当做是双精度浮点型。
  48. // 双精度浮点型 - 即 IEEE 754 规定的64位双精度浮点类型
  49. double fooDouble = 123.4;
  50. // 布尔类型 - true 与 false
  51. boolean fooBoolean = true;
  52. boolean barBoolean = false;
  53. // 字符类型 - 16位 Unicode编码字符
  54. char fooChar = 'A';
  55. // 用 final 可以使一个常量不可更改
  56. final int HOURS_I_WORK_PER_WEEK = 9001;
  57. // 字符串
  58. String fooString = "My String Is Here!";
  59. // \n 代表一个新的换行
  60. String barString = "Printing on a new line?\nNo Problem!";
  61. // \t 代表一个新的制表符
  62. String bazString = "Do you want to add a tab?\tNo Problem!";
  63. System.out.println(fooString);
  64. System.out.println(barString);
  65. System.out.println(bazString);
  66. // 数组
  67. // 数组在声明时大小必须已经确定
  68. // 数组的声明格式:
  69. //<数据类型> [] <变量名> = new <数据类型>[<数组大小>];
  70. int [] intArray = new int[10];
  71. String [] stringArray = new String[1];
  72. boolean [] booleanArray = new boolean[100];
  73. // 声明并初始化数组也可以这样:
  74. int [] y = {9000, 1000, 1337};
  75. // 随机访问数组中的元素
  76. System.out.println("intArray @ 0: " + intArray[0]);
  77. // 数组下标从0开始并且可以被更改
  78. intArray[1] = 1;
  79. System.out.println("intArray @ 1: " + intArray[1]); // => 1
  80. // 其他数据类型
  81. // ArrayLists - 类似于数组,但是功能更多,并且大小也可以改变
  82. // LinkedLists
  83. // Maps
  84. // HashMaps
  85. ///////////////////////////////////////
  86. // 操作符
  87. ///////////////////////////////////////
  88. System.out.println("\n->Operators");
  89. int i1 = 1, i2 = 2; // 多重声明可以简化
  90. // 算数运算
  91. System.out.println("1+2 = " + (i1 + i2)); // => 3
  92. System.out.println("2-1 = " + (i2 - i1)); // => 1
  93. System.out.println("2*1 = " + (i2 * i1)); // => 2
  94. System.out.println("1/2 = " + (i1 / i2)); // => 0 (0.5 truncated down)
  95. // 取余
  96. System.out.println("11%3 = "+(11 % 3)); // => 2
  97. // 比较操作符
  98. System.out.println("3 == 2? " + (3 == 2)); // => false
  99. System.out.println("3 != 2? " + (3 != 2)); // => true
  100. System.out.println("3 > 2? " + (3 > 2)); // => true
  101. System.out.println("3 < 2? " + (3 < 2)); // => false
  102. System.out.println("2 <= 2? " + (2 <= 2)); // => true
  103. System.out.println("2 >= 2? " + (2 >= 2)); // => true
  104. // 位运算操作符
  105. /*
  106. ~ 取反,求反码
  107. << 带符号左移
  108. >> 带符号右移
  109. >>> 无符号右移
  110. & 和
  111. ^ 异或
  112. | 相容或
  113. */
  114. // 自增
  115. int i = 0;
  116. System.out.println("\n->Inc/Dec-rementation");
  117. // ++ 和 -- 操作符使变量加或减1。放在变量前面或者后面的区别是整个表达
  118. // 式的返回值。操作符在前面时,先加减,后取值。操作符在后面时,先取值
  119. // 后加减。
  120. System.out.println(i++); // 后自增 i = 1, 输出0
  121. System.out.println(++i); // 前自增 i = 2, 输出2
  122. System.out.println(i--); // 后自减 i = 1, 输出2
  123. System.out.println(--i); // 前自减 i = 0, 输出0
  124. ///////////////////////////////////////
  125. // 控制结构
  126. ///////////////////////////////////////
  127. System.out.println("\n->Control Structures");
  128. // If语句和C的类似
  129. int j = 10;
  130. if (j == 10){
  131. System.out.println("I get printed");
  132. } else if (j > 10) {
  133. System.out.println("I don't");
  134. } else {
  135. System.out.println("I also don't");
  136. }
  137. // While循环
  138. int fooWhile = 0;
  139. while(fooWhile < 100)
  140. {
  141. //System.out.println(fooWhile);
  142. //增加计数器
  143. //遍历99次, fooWhile 0->99
  144. fooWhile++;
  145. }
  146. System.out.println("fooWhile Value: " + fooWhile);
  147. // Do While循环
  148. int fooDoWhile = 0;
  149. do
  150. {
  151. //System.out.println(fooDoWhile);
  152. //增加计数器
  153. //遍历99次, fooDoWhile 0->99
  154. fooDoWhile++;
  155. }while(fooDoWhile < 100);
  156. System.out.println("fooDoWhile Value: " + fooDoWhile);
  157. // For 循环
  158. int fooFor;
  159. //for 循环结构 => for(<起始语句>; <循环进行的条件>; <步长>)
  160. for(fooFor=0; fooFor<10; fooFor++){
  161. //System.out.println(fooFor);
  162. //遍历 10 次, fooFor 0->9
  163. }
  164. System.out.println("fooFor Value: " + fooFor);
  165. // Switch Case 语句
  166. // switch可以用来处理 byte, short, char, 和 int 数据类型
  167. // 也可以用来处理枚举类型,字符串类,和原始数据类型的包装类:
  168. // Character, Byte, Short, 和 Integer
  169. int month = 3;
  170. String monthString;
  171. switch (month){
  172. case 1:
  173. monthString = "January";
  174. break;
  175. case 2:
  176. monthString = "February";
  177. break;
  178. case 3:
  179. monthString = "March";
  180. break;
  181. default:
  182. monthString = "Some other month";
  183. break;
  184. }
  185. System.out.println("Switch Case Result: " + monthString);
  186. ///////////////////////////////////////
  187. // 类型转换
  188. ///////////////////////////////////////
  189. // 数据转换
  190. // 将字符串转换为整型
  191. Integer.parseInt("123");//返回整数123
  192. // 将整型转换为字符串
  193. Integer.toString(123);//返回字符串"123"
  194. // 其他的数据也可以进行互相转换:
  195. // Double
  196. // Long
  197. // String
  198. // 类型转换
  199. // 你也可以对java对象进行类型转换, 但其中会牵扯到很多概念
  200. // 在这里可以查看更详细的信息:
  201. // http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
  202. ///////////////////////////////////////
  203. // 类与函数
  204. ///////////////////////////////////////
  205. System.out.println("\n->Classes & Functions");
  206. // (Bicycle类定义如下)
  207. // 用new来实例化一个类
  208. Bicycle trek = new Bicycle();
  209. // 调用对象的方法
  210. trek.speedUp(3); // 需用getter和setter方法
  211. trek.setCadence(100);
  212. // toString 可以把对象转换为字符串
  213. System.out.println("trek info: " + trek.toString());
  214. } // main 方法结束
  215. } // LearnJava 类结束
  216. // 你也可以把其他的非public类放入到.java文件中
  217. // 类定义的语法:
  218. // <public/private/protected> class <类名>{
  219. // //成员变量, 构造函数, 函数
  220. // //Java中函数被称作方法
  221. // }
  222. class Bicycle {
  223. // Bicycle 类的成员变量和方法
  224. public int cadence; // Public: 任意位置均可访问
  225. private int speed; // Private: 只在同类中可以访问
  226. protected int gear; // Protected: 可以在同类与子类中可以访问
  227. String name; // default: 可以在包内中可以访问
  228. // 构造函数是初始化一个对象的方式
  229. // 以下是一个默认构造函数
  230. public Bi450635425cycle() {
  231. gear = 1;
  232. cadence = 50;
  233. speed = 5;
  234. name = "Bontrager";
  235. }
  236. // 一下是一个含有参数的构造函数
  237. public Bicycle(int startCadence, int startSpeed, int startGear, String name) {
  238. this.gear = startGear;
  239. this.cadence = startCadence;
  240. this.speed = startSpeed;
  241. this.name = name;
  242. }
  243. // 函数语法:
  244. // <public/private/protected> <返回值类型> <函数名称>(<参数列表>)
  245. // Java类中经常会用getter和setter来对成员变量进行操作
  246. // 方法声明的语法:
  247. // <作用域> <返回值类型> <方法名>(<参数列表>)
  248. public int getCadence() {
  249. return cadence;
  250. }
  251. // void返450635425回值函数没有返回值
  252. public void setCadence(int newValue) {
  253. cadence = newValue;
  254. }
  255. public void setGear(int newValue) {
  256. gear = newValue;
  257. }
  258. public void speedUp(int increment) {
  259. speed += increment;
  260. }
  261. public void slowDown(int decrement) {
  262. speed -= decrement;
  263. }
  264. public void setName(String newName) {
  265. name = newName;
  266. }
  267. public String getName() {
  268. return name;
  269. }
  270. //返回对象属性的方法
  271. @Override
  272. public String toString() {
  273. return "gear: " + gear +
  274. " cadence: " + cadence +
  275. " speed: " + speed +
  276. " name: " + name;
  277. }
  278. } // Bicycle 类结束
  279. // PennyFarthing 是 Bicycle 的子类
  280. class PennyFarthing extends Bicycle {
  281. // (Penny Farthings 是前轮很大的 Bicycle, 并且没有齿轮)
  282. public PennyFarthing(int startCadence, int startSpeed){
  283. // 通过super调用父类的构造函数
  284. super(startCadence, startSpeed, 0, "PennyFarthing");
  285. }
  286. // 你可以用@注释来表示需要重载的方法
  287. // 了解更多的注释使用方法,可以访问下面的地址:
  288. // http://docs.oracle.com/javase/tutorial/java/annotations/
  289. @Override
  290. public void setGear(int gear) {
  291. gear = 0;
  292. }
  293. }

更多阅读

下面的链接只是为了便于大家理解这些主题而给出的,对于具体的例子请大家自行Google

其他主题:


还没有评论.