Java基础1
基础的基础
- 数据类型
- 基本类型
byte short int long float double char boolean
- 引用类型
类(String) 接口 数组
二进制 0b 八进制0 十六进制0x
-
类变量 直接用 静态 static
-
常量final
-
修饰符
-
包机制 package
-
导入包import
public class Name{
public static void main(String[] args){
}
}//初始化
System.out.println("hello");//打印
classname exmam = new classname();//使用实例变量
Scanner s = new Scanner(System.in);//输入
if ( s.hasNext() ){
String str = s.next();
System.out.println(str);
s.close();//及时关闭
}
next();//消除之前空格,空格为分隔符或结束符
nextLine();//回车之前的所有
nextInt();//整型
for遍历
for(int i:numbers){//增强遍历
}
方法
public class Name{
public static void main(String[] args){
}
public static int add(int a,intb){//static类变量可直接调用
return a+b;
}
}
//值传递,没有引用传递
//命令行传参
//可变参数
public void test(int x,int... i){//可变参数放到最后
}
数组
//定义
int[] array;//首选
int array[];
//创建数组
int[] array = new int[2];
array.length;//数组长度
//java的内存分析
//栈声明,堆创建开辟内存,数组
//初始化
int[] a = {2,3,4};//静态初始化
int[] b = new int[10];//动态初始化:包含默认初始化(默认初始值)
//数组变量属于引用类型,数组也可以看成对象,数组本身就是对象
//多维数组
int[][] a = new int[2][3];
//Arrays类
import java.util.Arrays;//导入
Arrays.toString(name);
Arrays.sort(name);
//稀疏数组
类
//类是抽象,对象是具体的实例
//new创建对像
//属性,方法
//this指向当前类
//构造器
new; //本质是调用构造器
//创建对象内存分析
//栈放引用,栈指向堆区,堆区含方法区,方法区含静态方法区
//封装
private;//
public;//
default;//
protected;//
//继承
public class Students extends Teachers{}
//子类继承父类的全部方法
//在java中,所有类直接或间接继承Object类
//super
super.name;//父类的public
//构造器先执行父类的无参构造器super();
//方法重写
Son son = new Son();
Father a = new Father();//父类的引用指向子类,子类重写父类的方法
//非静态,public,方法名一样才:重写
//修饰符:范围可以扩大不可以缩小,public>protected>default>private
//抛出的异常,范围可以缩小,但不能扩大
//多态
//子类重写了父类的方法,就执行子类的方法
//多态是方法的多态
//父类和子类有关系,父类引用指向子类对象
Father a = new Son();
//static 方法属于类,不属于实例
//instanceof
//判断对象类型
Object object = new Son();
object instanceof Father;//true
Object instanceof Son;//true
x instanceof y;//x和y之间是否存在父子关系
//类型转换
//父类转化为子类,需要强制转换
//子类转化为父类会丢失一些方法,不用强制转换
//static
//静态变量,类的
//代码块
//静态代码块
//静态是和类一起加载的,只执行一次
//静态代码块,默认代码块和类一起加载,并且先于构造器
//静态导入包,不用写类名了
//抽象类、
//抽象方法,只有名字,必须为抽象类,抽象类可含不抽象方法
public abstract class Name{
public abstract void f();
}
//类的时候具体定义,写方法的具体內容
//接口,只有规范,自己无法写方法,更抽象。面向接口编程
public interface Name1{
//所有定义默认是抽象的public abstract
//定义的属性都是常量,public static final
}
//接口间接可多继承
public class some implements Name1,Name2{
//重写接口中的方法
}
//接口没有构造方法
//内部类
//一个类的内部的定义的一个类
Out.in a = Out.new in();
//内部类可以访问外部类的私有属性、方法
//内部静态类加个static
//一个Java可以有多个class类,只能有一个public class
//局部内部类
//匿名内部类
new Name().run();
异常
//Exception
//异常类Error、Exception
//超类Throwable
//Error致命,Exception可被程序处理
try{//监控区
throw new Name();//主动抛出异常
}catch(异常类型 e ){//捕获异常
//
}catch(Exception t){//捕获异常从小到大
}finally{//善后工作
}//finally可以不要
public void test() throws Name(){
throw new Name();
}//可想外抛出异常
//自定义异常