例如:
弱的数据类型直接赋值给强的数据类型longx=2正确
强的转换成弱的有精度损失,需要强制类型转换,例如inti=(int)5.6正确
例如floatf=5.6//编译出错,因为没有强制类型转换。
3、java中常用关键词的意思
Enum枚举、implements实现接口、const定义常量、instantof测试一个对象是否是指定类的实例对象、package创建包,等等。
4、基本数据类型的相关概念
boolean表示布尔类型,只有两个值:
true和false
int表示整数类型
float表示单精度浮点数0.1f、.1f、-.05e3f
double表示双精度浮点数5.6、100d、-5.e3
在java中用了取大原则,当看见小数的时候,比如5.6默认是double类型,所以floatf=5.6是错误的
5、熟悉进制的表示:
比如十六进制以ox开头,八进制以o开头。
八进制表示:
以0作为前缀,数码有0,1,2,3,4,5,6,7,逢8进位
如:
8(十进制)-->010(八进制) 再如028非法,因为数码只有到7;
十六进制表示:
以0x作为前缀,数码有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,逢16进位
如:
16(十进制)-->0x10(十六进制)
6、java中,字符对应的整数值a=97b=98……类推;A=65……
例如intx=”a”-“b”其值为整数1;
7、了解常用的java类
例如:
Object类
java.lang.Object类是所有java类的最高层次父类,该类提供了面向对象编程技术的基本机制。
重要方法列表:
hashCode()方法
toString()方法
equals()方法
finalize()方法
clone()方法
wait()方法
notify()/notifyAlly()方法
System类:
System类是java.lang包中的,使用前不用导入。
System类的方法都是静态的,不用创建实例,直接使用System类名来调用。
例如:
age=20;System.out.println(“我的年龄是:
”+age);
String类
java.lang.String类对象表示不可修改的Unicode编码字符串.
方法说明:
构造方法
字符串、连接、转换和截断:
concat()、replace()、substring()、toLowerCase()、toUpperCase()、trim()
检索和查找功能:
charAt()、startWith()、indexOf()、lastIndexOf()、length();
内容比较:
equals()、equalslgnoreCase()、compareTo()
StringBuffer类
StringBuffer类对象保存可修改的Unicode字符序列
MouseListener接口实现鼠标事件的监听(教材291),方法如下:
PublicvoidmouseClicked(MouseEvente);
PublicvoidmousePressed(MouseEvente);
PublicvoidmouseEndered(MouseEvente);
PublicvoidmouseExited(MouseEvente);
Math类
java.lang.Math类提供常用数学功能和数学常量:
Exception类是程序处理的异常对应的类及其子类;
8、①类的类体包括了变量的定义和方法的定义;
②多态(掌握重载和重写);
重载-------Java的方法重载,就是在类中创建多个方法,它们具有相同的名字,但具有不同的参数个数或参数类型。
调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是静态多态性。
重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。
无法以返回型别作为重载函数的区分标准。
(方法重载三中形式:
1.参数类型不同2.参数列表不同3.参数顺序不同)
)
例如:
一.intdelete(Stringx1,Stringx2)二.intset(intx,Strings)
voiddelete(Stringx,Stringy)intset(Strings,intx)
一.不是重载,因为参数类型、个数、顺序完全一样
二.是重载,不同类型的顺序不一样
重写-------若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。
如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。
例如在子类A中实现print()方法的重写(请认真分析教材73页案例)
classTest {
voidprint() {
System.out.println("helloTest");
}
publicstaticvoidmain(String[]args) {
Aa=newA();
a.print();
} }
classAextendsTest {
voidprint() {
System.out.println("helloA"); //在子类中实现父类方法print()的重写
} }
③this与super (更多参见教材75页)
super(参数):
调用基类中的某一个构造函数(应该为构造函数中的第一条语句)
this(参数):
调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)
This 用法:
(1)普通的直接引用;
(2)方法中的某个形参名与当前对象的某个成员有相同的名字时用this区分,有this引用的是成员,没有this 的是形参。
(3)引用构造函数。
Super:
调用super()必须写在子类构造方法的第一行。
"super.x"代表从父类继承下来的但被隐藏的x值。
比如通过super调用父类的protected修饰的函数。
注意:
(1)this和super不能同时出现在一个构造函数中;可以用this调用 一个构造方法,但不能调用两个。
(2)this()和super()都指的是对象,所以均不可以再static环境中使用。
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位.
class Base{
Base(){
System.out.println("Base");
}
}
public class Checket extends Base{
Checket(){
super();//调用父类的构造方法,一定要放在方法的首个语句
System.out.println("Checket");
}
子类与父类之间的转换(见教材68页):
可以认为子类的对象也是父类的对象;反过来,由父类的构造方法创建的实例对象一般不是子类的实例对象。
9、表达式
表达式------由运算符和变量、常数或常量组成的式子称为表达式。
例如2+3,a*b,++a,b--,a*=b,a+++(++b)等。
表达式是组成程序的基本单位,也是程序运算时的基本单位。
还有一些基本的运算符号应该会运用,比如:
条件与&&,条件或||,逻辑与&和逻辑或|,其中&&与&以及||与|运算结果完全相同。
10、包的定义与导入包
比如:
packagecom.beifang//定义一个包
Importjava.Swing.*//导入需要用到的包
注意:
在同一个文件中可以定义多个类,但是只能是一个public类,其他是默认类。
对于一般类(非内部类)来说,private 和protected 这两个修饰语都是没有意义的
11、java的基本概念
例如:
java源文件的后缀是.java,编译后的后缀是.class
编译java指令,javac,运行指令java
C#、Java是纯面向对象的程序设计语言。
纯面向对象的程序设计语言编写的程序必须以类为基本单位,所有功能都封装在类中,真正实现数据(如数据成员)和业务(如各类方法)的封装。
12、数组
数组的定义包括静态与动态,例如:
静态定义:
int[]numbers={1,2,3,4,5};
动态定义:
intsize=5;
int[]numbers=newint[size];
for(inti=0;i numbers[i]=i+1;
}
13、Equal与==的主要区别
²==:
主要比较对象的地址值
²比如2个字符串对象
Strings1=newString("str");
Strings2=newString("str");
如果用==号比较,会返回false,因为创建了两个对象,他们在内存中地址的位置是不一样的。
²Equals----它是java.lang.Object类中的一个方法。
因为java中所有的类都默认继承于Object,所以所有的类都有这个方法。
在Object类源码中是这样写的。
publicbooleanequals(Objectobj){
return(this==obj);
}
他同样使用==号进行内存地址的比较。
²equals方法具体的作用要看当前的那个类是如何实现重写父类中该方法的。
如果没有重写该方法,那么他和==号等价。
14、字符串池
在该字符串池中,具有相同字符串序列的字符串值对应一个字符串实例对象。
举例:
Strings1="hehe";
Strings2="hehe";
Strings3=newString("hehe");
if(s1==s2){
System.out.println("s1==s2