前言,关于java:
一些浪漫的“废话”:印度尼西亚有一个重要 的盛产咖啡的岛屿叫java,中文译名为爪哇,开发语言为新的语言起名为Java,其寓意是为诗人端上一杯热咖啡。
java的独特:编写一次,到处运行(write once,run anywhere)java与平台无关,因为java可以在平台之上再提供一个java的运行环境(Java runtime environment),该运行环境由java虚拟机(Java virtual machine),类库和一些核心文件组成。JVM可以直接识别并执行字节码文件,字节码不是机器指令,不和特定的平台相关,不被任何平台直接识别没执行;java对于任何平台提供的字节码都是相同的。
java的一些集成开发环境-IDEA,nebean,myeclipse等,这些IDE都以JDK作为系统的核心。
使用java编译器(javac.exe)编译源文件,得到字节码文件,再使用java解释器(Java.exe)来解释,执行字节码文件。
1.常用数据类型
类型转换:精度排列:byte-short-char-int-long-float-double
自动转换:精度低到精度高,如果表达式中最高精度低于int,则按int计算
引用型数据:
数组:int [ ]a,b==int a[ ],b[ ];
int [ ]c,d[ ]==int c[ ],d[ ][ ]; //不可在括号中指定个数
int s1=a.length; //元素个数
int s2=d.length; //一维数组的个数
对象(后详述)
接口(后详述)
2.语句:
一些基本语句和循环不再赘述,和C++基本无异
continue;//本次循环结束,不再执行本次循环体中continue语句中后面的语句
break;//跳出当前的循环
3.类:
成员变量的默认值:
Boolean-false
char-'\0'
byte,short,int,long-0
float,double-0.0
引用性变量-null
区别成员变量和局部变量:
局部变量什么时候声明,在声明后有效,且范围是声明所在的复合语句内。局部变量无默认值,所以不可以使用未初始化的局部变量。当局部变量与成员变量重名时,局部变量覆盖成员变量
构造方法:
构造方法可以重载;java中没有析构方法
声明对象与实例化对象:
对象调用类中的变量和方法时,只用. 来操作,不用->来操作。java有自动回收内存的机制,当某个实体不再被任何对象所引用时,java自动回收分配的内存,所以java中不存在内存泄漏;而c++中需要手动释放内存,若忘记,则会造成内存泄漏。
引用类型的传值:
传递的是地址,不是对象实体
重载函数:
参数的类型或数量必须发生改变,函数的返回类型和函数名不参与比较
重写函数:
子类对父类继承过来的方法有权利进行重写,重写后运行时就调用该重写的函数。
函数的名字,参数的类型和数量必须全部相同;函数的返回类型可以相同也可以是子类型
注意!!不能降低方法的访问权限,但可以升高
访问权限:
注意!!不用public,private和protected修饰的变量和方法默认为friendly;
但类只有public和友好类(默认),并且不能用private和protected修饰。
继承:java中所有类只有一个父类,即只能被继承一次
子父类在同一个包中的访问权限:继承非private变量和方法,且访问权限保持不变
子父类不在同一个包中的访问权限:只能继承protected和public变量和方法
final关键字:
修饰类-不允许被继承
修饰变量-常量
修饰方法-不允许被修改,即只能继承,不能被子类重写
abstract:
抽象类,用abstract修饰,abstract类里可以有abstract方法,也可以没有。
上转型对象:
A a=new A(); //A是B的父类;
B b=new B();
a=b;
其中对象a可以访问子类对象b重写和继承的方法,以及继承和被隐藏的变量;若子类重写父类的某个方法,a调用子类重写的方法;若子类重写父类的某静态方法,a依旧掉调用父类的静态方法
4.包
通过不同的包名来区分隶属于不同源文件的同名类,位于源文件的第一句,
变量和方法
5.import语句
引入其他类(自定义包和类库中的类)