一个java程序中只能有一个public的java类,并且该类名必须和程序的名称一致
一个java程序中有且只有一个main方法,他是程序运行的开端
变量和字符串要用“+”连接,变量与变量结合不需要加号,字符以“+”作为连接符
Public static void main(String args[]):public表示main是公有的方法;static表示main在没有创建对象的情况下,仍然可以被运行;void表示main方法没有返回值;string args[]表示运行该程序时所需的参数
Java数据类型:
基本数据类型:数值型、字符型(char)、布尔型(bool)
数值型:整数类型(byte、short、int、long)、浮点类型(float、double)
引用数据类型:类(class)、接口(interface)、数组
Java数组:
声明数组-----------数据类型 数组名[]
为数组分配内存------------数组名 = new 数据类型[个数]
或
数据类型 数组名[] = new 数据类型[个数]
数组赋初值:数据类型 数组名[] = {初值0, 初值1,……}
数组拷贝:arraycopy(src,0,dst,0,3),表示从src的0下标拷贝3个元素插入到dst的0开始的3个元素
数组排序:Arrays.sort(数组名),使用该方法时须加载java.util包
Java运行二维数组中每行的元素个数均不相同:
数组名.length //取得数组的行数
数组名[行的索引].length //取得特定行的个数
方法重载:方法重载就是在同一个类中存在一个以上重名的方法,摘要参数个数或参数类型不同即可
数组作为参数传递时:数组名作为实参传递,数组声明作为形参
数组返回值:如果要返回数组,必须在被调用的方法前添加数组返回类型,比如public static int[][] max(a,b)
创建类对象的步骤:
1、 声明对象 : 类名 对象名;
2、 实例化对象 : 对象名 = new 类名()
或
类名 对象名 = new 类名()
对象只有在实例化之后才能被使用,而实例化对象的关键字就是new
类名 对象名 = null; //表示对象未实例化,也就是对象指向的内存区域为空
对象1 = 对象2; //表示把对象2的内存地址赋给对象1,两个对象都指向同一个内存区域,即便对象2 = null;对象1仍然指向引用的内存模块
匿名对象:没有明确声明的对象,没有具体的对象名称,对象仅被使用一次。例如,new 类名().方法()
构造方法:同C++的构造函数,主要工作是帮助新创建的对象赋初值。具体特征:
1、 名称与类名相同
2、 没有返回值
格式:访问权限 类名称(类型1 参数1,类型2 参数2,……) { 方法体}
对象的比较:“==”操作符用于比较两个对象的内存地址是否相等,equals()方法用于比较两个对象的内容是否一致
String str1 = “字符串1”; //把字符串1所在的内存地址赋给str1
String str2 = new String(“字符串2”) //为字符串2开辟一块内存,并把内存地址赋予str2
this代表的是当前对象,所谓当前对象就是指调用类中方法或属性的那个对象
类变量:用static声明的变量或方法,当用static声明一个变量时,该变量变为静态值,也就是该变量支持所有对象访问。
调用格式:类名.变量或方法
Static类型的方法只能调用static类型的变量或方法,访问不用static修饰的方法时会出现错误
main函数:main函数作为整个程序的如后,需要被java虚拟机直接调用,因此必须声明为public类型;又因为java虚拟机不能创建程序类的对象,要调用main函数时无法使用具体的对象调用,因此需要把main方法声明为static,作为类变量,直接由类名调用
静态代码块:一个类可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块被执行,且只执行一次,静态代码块常用来进行类属性的初始化。
内部类:在类的内部定义另外一个类,此类为内部类。外部类不能访问内部类中所声明的属性;而内部类则可以访问外部类的属性
内部类也可以通过创建对象从外部类之外被调用,只要将内部类声明为public即可;声明方法:外部类名.内部类名 内部类对象 = 外部类对象.new 内部类名
内部类不仅可以在类中定义,也可以在方法中定义,在方法中定义的内部类只能访问方法中的final类型的局部变量,因为用final定义的局部变量相当于一个常量,它的生命周期超出方法运行的生命周期
Java中不允许多重继承,单允许多层继承。也就是说类C不能同时继承类A和类B,但是类C可以继承类B,类B可以继承类A
This:1、表示当前对象;2、调用本类中的方法或属性;3、调用本类中的构造方法时,放在程序首行
Super:1、子类调用父类的方法或属性;2、调用父类中的构造方法时,放在程序首行
抽象类:由abstract关键字定义的类。抽象类中方法可分为两种:一种是一般方法,它和普通类中的方法一样;另一种是“抽象方法”,它是以abstract关键字开头的方法,此方法只声明了返回值的数据类型、方法名称与所需的参数,但没有定义方法体。抽象方法由子类去实现;在抽象类中声明构造方法后,在子类中必须明确调用(super(参数1,参数2,……))
Object类:超级类,是所有类的父类。默认情况下不需要extends关键字指明继承关系
Final:java中声明类、属性、方法时,都可以使用final关键字修饰
1、 final标记的类不能被继承
2、 final标记的方法不能被子类复写
3、 final标记的变量(成员变量或局部变量)即为常量,只能赋值一次
接口:和抽象类非常相似,也具有数据成员和抽象方法,但不同点是:
1、 接口里的数据成员必须初始化,且数据成员均为常量
2、 接口里的方法必须全部声明为abstract,不像抽象类还保留一般的方法。接口中所有方法必须是抽象方法
接口实现:
Class 类名称 implements 接口A,接口B
{}
接口的作用是实现多重继承
Instanceof:判断一个类是否实现了某个接口或判断一个实例对象是否属于一个类。语法格式:
1、 对象 instanceof 类/接口
2、 返回值为布尔型,true/false
向上转型:父类对象通过子类去实例化,不需要进行强制类型转换。
语法:父类 对象名= new 子类()
向下转型:子类对象通过父类去实例化,需要强制类型转换。
语法:父类 对象名=new 子类(); 子类 对象名=父类对象名
方法抛异常:方法名(参数…) throws 异常类1,异常类2,…..
自定义异常类:
Class 异常名称 extends Exception
{
……
}
Package是在使用多个类或接口时,为了避免名称重复而采用的一种措施。
声明方法:Package package名称
一个java程序中有且只有一个main方法,他是程序运行的开端
变量和字符串要用“+”连接,变量与变量结合不需要加号,字符以“+”作为连接符
Public static void main(String args[]):public表示main是公有的方法;static表示main在没有创建对象的情况下,仍然可以被运行;void表示main方法没有返回值;string args[]表示运行该程序时所需的参数
Java数据类型:
基本数据类型:数值型、字符型(char)、布尔型(bool)
数值型:整数类型(byte、short、int、long)、浮点类型(float、double)
引用数据类型:类(class)、接口(interface)、数组
Java数组:
声明数组-----------数据类型 数组名[]
为数组分配内存------------数组名 = new 数据类型[个数]
或
数据类型 数组名[] = new 数据类型[个数]
数组赋初值:数据类型 数组名[] = {初值0, 初值1,……}
数组拷贝:arraycopy(src,0,dst,0,3),表示从src的0下标拷贝3个元素插入到dst的0开始的3个元素
数组排序:Arrays.sort(数组名),使用该方法时须加载java.util包
Java运行二维数组中每行的元素个数均不相同:
数组名.length //取得数组的行数
数组名[行的索引].length //取得特定行的个数
方法重载:方法重载就是在同一个类中存在一个以上重名的方法,摘要参数个数或参数类型不同即可
数组作为参数传递时:数组名作为实参传递,数组声明作为形参
数组返回值:如果要返回数组,必须在被调用的方法前添加数组返回类型,比如public static int[][] max(a,b)
创建类对象的步骤:
1、 声明对象 : 类名 对象名;
2、 实例化对象 : 对象名 = new 类名()
或
类名 对象名 = new 类名()
对象只有在实例化之后才能被使用,而实例化对象的关键字就是new
类名 对象名 = null; //表示对象未实例化,也就是对象指向的内存区域为空
对象1 = 对象2; //表示把对象2的内存地址赋给对象1,两个对象都指向同一个内存区域,即便对象2 = null;对象1仍然指向引用的内存模块
匿名对象:没有明确声明的对象,没有具体的对象名称,对象仅被使用一次。例如,new 类名().方法()
构造方法:同C++的构造函数,主要工作是帮助新创建的对象赋初值。具体特征:
1、 名称与类名相同
2、 没有返回值
格式:访问权限 类名称(类型1 参数1,类型2 参数2,……) { 方法体}
对象的比较:“==”操作符用于比较两个对象的内存地址是否相等,equals()方法用于比较两个对象的内容是否一致
String str1 = “字符串1”; //把字符串1所在的内存地址赋给str1
String str2 = new String(“字符串2”) //为字符串2开辟一块内存,并把内存地址赋予str2
this代表的是当前对象,所谓当前对象就是指调用类中方法或属性的那个对象
类变量:用static声明的变量或方法,当用static声明一个变量时,该变量变为静态值,也就是该变量支持所有对象访问。
调用格式:类名.变量或方法
Static类型的方法只能调用static类型的变量或方法,访问不用static修饰的方法时会出现错误
main函数:main函数作为整个程序的如后,需要被java虚拟机直接调用,因此必须声明为public类型;又因为java虚拟机不能创建程序类的对象,要调用main函数时无法使用具体的对象调用,因此需要把main方法声明为static,作为类变量,直接由类名调用
静态代码块:一个类可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块被执行,且只执行一次,静态代码块常用来进行类属性的初始化。
内部类:在类的内部定义另外一个类,此类为内部类。外部类不能访问内部类中所声明的属性;而内部类则可以访问外部类的属性
内部类也可以通过创建对象从外部类之外被调用,只要将内部类声明为public即可;声明方法:外部类名.内部类名 内部类对象 = 外部类对象.new 内部类名
内部类不仅可以在类中定义,也可以在方法中定义,在方法中定义的内部类只能访问方法中的final类型的局部变量,因为用final定义的局部变量相当于一个常量,它的生命周期超出方法运行的生命周期
Java中不允许多重继承,单允许多层继承。也就是说类C不能同时继承类A和类B,但是类C可以继承类B,类B可以继承类A
This:1、表示当前对象;2、调用本类中的方法或属性;3、调用本类中的构造方法时,放在程序首行
Super:1、子类调用父类的方法或属性;2、调用父类中的构造方法时,放在程序首行
抽象类:由abstract关键字定义的类。抽象类中方法可分为两种:一种是一般方法,它和普通类中的方法一样;另一种是“抽象方法”,它是以abstract关键字开头的方法,此方法只声明了返回值的数据类型、方法名称与所需的参数,但没有定义方法体。抽象方法由子类去实现;在抽象类中声明构造方法后,在子类中必须明确调用(super(参数1,参数2,……))
Object类:超级类,是所有类的父类。默认情况下不需要extends关键字指明继承关系
Final:java中声明类、属性、方法时,都可以使用final关键字修饰
1、 final标记的类不能被继承
2、 final标记的方法不能被子类复写
3、 final标记的变量(成员变量或局部变量)即为常量,只能赋值一次
接口:和抽象类非常相似,也具有数据成员和抽象方法,但不同点是:
1、 接口里的数据成员必须初始化,且数据成员均为常量
2、 接口里的方法必须全部声明为abstract,不像抽象类还保留一般的方法。接口中所有方法必须是抽象方法
接口实现:
Class 类名称 implements 接口A,接口B
{}
接口的作用是实现多重继承
Instanceof:判断一个类是否实现了某个接口或判断一个实例对象是否属于一个类。语法格式:
1、 对象 instanceof 类/接口
2、 返回值为布尔型,true/false
向上转型:父类对象通过子类去实例化,不需要进行强制类型转换。
语法:父类 对象名= new 子类()
向下转型:子类对象通过父类去实例化,需要强制类型转换。
语法:父类 对象名=new 子类(); 子类 对象名=父类对象名
方法抛异常:方法名(参数…) throws 异常类1,异常类2,…..
自定义异常类:
Class 异常名称 extends Exception
{
……
}
Package是在使用多个类或接口时,为了避免名称重复而采用的一种措施。
声明方法:Package package名称