JAVA基础

 目录

一、数据类型

二、流程控制语句

三、数组

四、类和对象 

五、继承(extends)

六、多态

七、接口(interface)

八、面向对象编程原则

九、泛型集合

十、异常处理

十一、文件操作

十二、多线程


一、数据类型

1、整形

  • 字节  byte
  • 短整型  short
  • 整形  int 
  • 长整型  long

2、浮点型

  • 单浮点型  float  32位 (定义后要写f,float a = 3.14f)
  • 双浮点型  double  64位

3、布尔类型

  • Boolean (没有0和1,只有true和false)

4、字符

  • char  (双字节,一个字符可以表示一个汉字)
  • 字符串  string

5、变量

  • 声明变量没有默认值,先赋值再使用

6、常量

  • 赋值后不能被改变
  • final  数据类型  常量名 ( =  值);

二、流程控制语句

1、if……else if

2、switch(表达式){   case 常量:   语句; break;    default: 语句;break;}

3、输入输出

//输入
Scanner input = new Scanner(System.in);
int a = input.nextInt();//得到int型
string name = input.next();//得到字符

//输出
System.out.print(); //输出结束后不换行
System.out.println();  //输出结束后换行

 4、判断字符串是否等值

  • 不使用 ==    ,使用 "  ".equals(answer)  //不等于:!"  ".equals(answer)

5、while(){  }     do{  }while();

6、for( )

增强型for循环的基本语法如下:

for (elementDataType element : arrayOrCollection) {
   // 循环体,使用element访问当前迭代的元素

}

其中,

elementDataType 是数组或集合中元素的数据类型;

element 是用于访问当前迭代元素的变量;

arrayOrCollection 是要遍历的数组或集合。

三、数组

1、一维数组

  • 声明:数据类型[ ] 数组名    /   数据类型  数组名[ ]
  • 创建:数组名 =  new 数组元素类型[元素个数]
    • 静态初始化:int a[ ] = {1,2,3};   或    int a[ ] = new int[ ] {1,2,3};
    • 动态初始化:int a[ ] = new int[3];   a[0] = 1;   a[1] = 2;   a[3] = 3
  • 功能 import java.util.Arrays

四、类和对象 

1、类和对象

  • 类:具有相同属性与行为的一类东西,(类名大写)
  • 对象:类的一个实例

2、创建

对象:类名  对象名  =  new  构造函数()

Employee e1 = new Employee();

3、构造函数

  • 规则:
    • 具有与类相同的名称
    • 不含返回值,不能用return返回一个值
    • 权限一般为public
  • 一般使用构造函数完成对成员变量的初始化 
  • 初始化:this关键字

4、重载

  • 规则:
    • 函数名称必须相同
    • 函数的参数必循不同(参数个数,参数类型)
    • 函数返回值可以相同,可以不同

5、变量

  • 变量的作用域
    • 全局变量
    • 局部变量
  • 静态变量(static)
    • 共享字段,所有对象共享静态属性(计数器)
    • 定义:归属于类而不是对象,在实例方法中不能定义static变量,在static方法中可以定义static变量,此时类也应改为static类
  • 静态常量
    • static final String sex = “man”

6、封装

  • 方法:变量private化,方法getter/setter化,getter/setter中添加条件控制语句 
  • (eclipse:Shift+Alt+S)

五、继承(extends)

  • 定义:子类继承父类的基本功能
  • 子类构造函数、方法通过super调用继承父类
    • 构造函数不能被继承(也无法被重写),只能被super调用
  • Object类

六、多态

  • 为不同的数据类型提供统一的接口,防止主函数或使用函数中重复定义方法,冗余增加
  • 抽象类(abstract)
    • 抽象类不能被实例化
    • 抽象类里必须有抽象方法,父类抽象方法中没有方法体
    • 抽象类里的抽象方法必须在其派生类中被重写
    • 抽象方法是其所有子类都具有的方法(功能)
  • 多态:相同的父类引用,不同的子类实例,执行相同的行为,产生不同的结果
  • Master ms = new Master();
    Pet p1 = new Cat();
    Pet p2 = new Dog();
    ms.cure(p1); //cat的治疗方法
    ms.cure(p2): //dog的治疗方法

七、接口(interface)

  • Java不支持多继承,防盗门同时拥有门与锁的功能,让防盗门继承门,同时实现锁的接口(功能)
  • 表示能力,也表示约定
  • 规则:
    • 接口不能被实例化,可通过使用了接口的子类实例化对象
    • 接口类中定义的方法没有方法体
    • 接口类的“子类”必须重写接口方法
    • 接口类中的变量必须是静态变量
  • 面向接口编程(一个类可以实现多个接口(功能))
    • 父类(抽象类):门;
    • 接口类:锁,拍照,远程开门,储存密码……
    • 子类:防盗门(继承门类,接口锁类)
    public class Smartphone extends Phone implements NetWork,Playgames,TakePicture
    //智能手机继承了手机类,使用了上网,玩游戏,照相接口

八、面向对象编程原则

  • 多用组合,少用继承
  • 针对接口编程
  • 针对扩展开放,针对改变封闭

九、泛型集合

十、异常处理

  • 使用异常处理替代if-else结构,使代码健壮,不臃肿
try{
    //正常执行代码段,有异常时中断,向catch抛出异常
    //代码段

}catch(<异常类型> e){
    //接收try中抛出的异常
    //对异常进行处理的代码段

}finally{
    //不关是否有异常都强制执行(System.exit(0)除外)
    //强制执行的代码段
}

多级catch:先子类再父类

  • 方法抛出系统异常(throws)
    • //方法体中出现的异常,通知调用者
      public static void main(String[] args){
          //……
          try{
              divide();
          }catch(Exception e){
              //异常处理
          }
          //……
      }
      
      public static void divide() throws Exception{
          //方法中声明异常(多个异常用逗号隔开)
      }
  • 手动抛出异常(throw)
    • public class person{
          private String sex;
          
          public void setSex(String sex) throws Exception{
              if("男".equals(sex) || "女".equals(sex))
                  this.sex = sex;
              else
                  throw new Exception("性别必须为‘男’或‘女’");
          }
      
      }
    • 自定义异常:添加一个新的继承了Exception的自定义异常类

十一、文件操作

十二、多线程

线程启动:Thread.start()

线程等待:Thread.sleep(1000)    //1000ms

线程加入:Thread.join()             //阻塞正在运行的线程,加入此线程

线程礼让:Thread.yield()          //正在执行的线程进入就绪状态,礼让其他线程

线程共享资源:

        public synchronized boolean <方法名>  //线程同步方法

        synchronized (this) {  }  //同步代码块,同一时刻只能有一个线程进入同步块

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值