一、数据类型+关键字+常用类

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关键字调用

父类的静态方法,是不能被子类继承的,也不可以被子类重写