一、基础概念
1.java对象的三大特征是:继承、封装、多态。
2.构造方法是在实例化对象是调用,其主要作用就是初始化成员变量,一个类可以有多个构造方法根据在实例化对象时所给的参数不同来区分使用了那个构造函数。
3.java中一些关键字
this:java虚拟机给每个对象分配了一个this,这个this是属于当前对象的,它表示对象本身。this可以出现在实例方法和构造方法中。当this出现在实例方法中,代表正在调用该方法的实例。当this出现在构造方法中,代表用该构造方法所创建出来的对象。
static:修饰的变量属于类变量也就是静态变量,在类创建时产生,这个类 实例化的任何一个对象都可以使用,可以通过"类名"."变量名"或"对象名"."变量名"使用。
super:子类不能继承父类的构造方法,如果子类要使用父类的构造方法就必须在子类的构造方法中使用且前面加上super关键字。
在子类中要使用被子类隐藏了的父类的成员变量和成员方法,就必须在前面加上super才可以调用的到。
4.java中的规则:类方法不可以去访问成员变量,非静态方法既可以访问静态变量也可以访问成员变量。因为类方法和类变量是属于类的在类创建是产生,而成员方法和成员变量是属于对象的在类实例化对象时才产生。
5.封装:java中的访问权限由类、变量、方法声明是所用的修饰符决定public、protected、没有修饰符、private
访问级别 | 修饰符 | 同类访问 | 同包访问 | 子类继承 | 不同包 |
公开 | public | 可以 | 可以 | 可以 | 可以 |
受保护 | protected | 可以 | 可以 | 可以 | |
默认 | 没有 | 可以 | 可以 | ||
私有 | private | 可以 |
例如给动物喂食的例子:主人有一个方法给动物喂食,这个方法有连个参数"动物"、"食物",当用狗去实例化动物、骨头实例化食物,就可以实现主人给狗喂骨头这个行为。当用猫去实例化动物、鱼实例化食物,就可以实现主人给猫喂鱼这种行为。
7.继承:一个类继承了抽象类,就必须实现这个抽象类中的所有方法。一个类实现了一个接口就必须实现这个接口中的所有方法。
接口中的变量都默认是public的、静态的且final的也就是常量,通过接口名可以直接取出变量。
当一个类不想被继承或修改时用final来修饰,表示这个类是最终的不能被修改、继承。同理如果一个方法不想被覆盖也就是重写时也要用final修饰。如果一个变量不想被修改时也可以用final修饰,但是这个变量就必须在声明时赋予初值。
8.类的继承、接口的实现、方法的覆盖(重写)、类中方法的重载也可以理解为java的多态。
类中方法的重载意思就是,一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同(个数不同或类型不同),也可以理解为类功能的多态性。
9.数组:定义一个对象数组之后,若要使用这个对象数组就必须再次为这个对象数组分配内存空间也就是new一次。
Dog dogs[] = new Dog[4]; //定义对象数组
dogs[2] = new Dog(); //使用对象数组之前new一下
10.零散
//打印系统当前时间
Calendar calender = Calendar.getInstance();
Date nowTime = calender.getTime();
System.out.println(nowTime);
比较连个时间的先后可以使用Calendar类中的before()和after()方法。
产生随机数Math.random()这个函数产生一个[0,1)的数,乘以相应的倍数就可以得到相对应范围内的随机数。
swithc()的条件可以是char、int、byte、short、枚举四种类型。
11.二进制
二进制在java中都是有符号表示的。
A.二进制的最高位是符号位,0表示正数,1表示负数。
B.正数的原码、反码、补码都一样。
C.负数的反码等于它的符号位不变其他位都取反。
D.负数的补码等于反码加1.
E.0的反码、补码都是0.
F.java没有无符号的数,换言之就是java中的数都是有符号的。
G.在计算机运算的时候,都是以补码的方式运算的。
12.java中的运算符
java中 有四个位运算符
按位与&:两位都为1,结果为1.
按位或|:两位有一个为1,结果为1.
按位异或:一个为1,一个为0,结果为1.
按位取反:0--->1,1--->0.
java中三个移位运算
算数右移:>>低位溢出,符号位不变,并用符号位补溢出的高位。
算数左移:<<符号位不变,低位补0(2<<3,2左移3位最快获得8)
逻辑右移:>>>低位溢出,高位补0