一、数据类型+关键字+常用类
1,基本数据类型:四类八种:
整数:Byte Short Int Long 从2的-7到2的7次方减一开始。 一个byte占一个字节 8位二进制:--->最大存储数据量是255;
文本:char:一个字符。
java中的字符采用Unicode编码格式,一个字符占两个字节。
逻辑:Boolean
浮点:Float Double:
3.强转:大数据向小数据转换时(值的范围大小),会有精度丢失。
byte(8)short(16)char(16)int(32)long(64)float(32)long(64)
4.关键字:
(1)this:this是一个关键字,存储了当前对象的内存地址
-->this对象,用来访问本类自己的属性和方法。
-->构造器中,给属性set值。
【1】 使用本类的属性 ,this.属性名, this可以省略不写
【2】 调用本类的方法 this.方法名() ,this可以省略不写
【3】 调用本类的构造方法, 要求必须是构造方法中的第一句代码
this()—》调用本类的无参构造方法
this(实参列表)调用本类的带参构造方法
【4】 当局部变量与成员变量名称相同时,this代表成员变量
(2)continue:跳出本次循环继续下一次循环;
break:跳出循环体,继续执行循环外的函数体;在switch...case中终止与下一个case的比较;
(3) return: 跳出整个函数体,函数体后面的部分不再执行。
(4)final关键字:
修饰类:final修饰的类不能被继承,其中的属性可以自由定义类型,但是其中的方法默认被final,不能修改。(除非真的不想其被继承,出于安全问题,一般不设置为final);
修饰方法:如果只有在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。
修饰属性:基本数据类型:值不能被修改,固定值。引用数据类型:在栈内存中的存储的地址不变,
对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。如果对象用final修饰,可以改变其属性值。
(5)static:方便在没有创建对象的情况下来进行调用(方法/变量)。海子博文。
static:加上该关键字就为静态的方法或静态的类;不加static的为成员变量,实例变量;
为什么 static方法,无法使用非static 的属性或方法?
答:因为static修饰的方法或成员方法,是在类加载到内存时,一同加载进来的非static的属性或方法是在创建对象时加载到内存的。
(6)abstract
抽象类中可以编写构造方法,它的构造方法是为了给子类提供调用的了,目的是创建子类对象。
各子类共有的方法,但是各子类中有各自不同的实现时,需要将方法声明为抽象方法。
(7)一个类没有显示继承另外的一个类,那么这个类就继承Object类;
Object中的类:
【1】toString()方法,用于显示对象的字符串形式,这个方法通常被程序员重写,用于显示对象的属性信息
【2】equals(Object obj)方法
在Object类中equals(Object obj)这个方法用于比较的是两个对象的内存地址是否相同,作用等同于”==”
通常被程序员重写,用于比较两个对象的内容(两个对象所有的属性值)是否相同。
【3】为什么两个String类型可以使用equals方法来比较内容是否相同,因为String类继承了Object,重写
了Object中的equals方法。
(8)构造器:
//为了在创建对象时,同时给属性进行赋值,可以编写构造方法
public Student(String name,int age,String sex,String school){
this(name,age,sex);//调用本类的基它构造方法,必须是方法中的第一句代码
this.school=school;
}
(9)代码块:
普通的代码块:
静态代码块:
构造器中的代码块:每次new新的对象时,都会执行,且优于构造方法执行。
同步代码块:多线程中的,为了数据的安全,有时需要访问共同资源时,往往需要同步(还有同步方法),
建议用同步代码块。继承Thread类,实现Runable接口。
(10)super
super只是一个关键字,这个关键字,只能出现在子类中,代表父类对象
【1】使用父类的非private属性 super.属性名
【2】使用父类的非private方法 super.方法名()
【3】调用父类的构造方法 super(), super(实参列表),必须是子类构造方法中第一句代码
【4】创建子类对象时,一定会调用父类的构造方法,如果不指定,默认调用父类的无参构造方法,相当于super()省略不写了
【5】注意:可以知道,super就是子类和父类的一个连接的纽带,且创建子类对象,必然调用父类的构造方法
思考?子类可以不调用父类的构造方法吗?默认子类的构造方法必须调用父类的构造方法吗?是的,必定会调用。
【6】当父类提供的方法,不能满足子类的需求的时候,子类可以重写父类的方法
子类重写的父类方法访问权限必须大于等于父类方法的访问权限
(如果父类中的方法是private 的,那么子类是不能继承的)
【7】父类中有属性,有方法,构造方法,静态方法?子类可以继承什么呢?
答:子类可以继承父类非私有的属性,非私有方法
构造方法不可以被子类继承,也不可以被子类重写,但是可以被子类调用,使用super关键字调用
父类的静态方法,是不能被子类继承的,也不可以被子类重写