Java学习笔记

基础知识

标识符

关键字

abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile

数据类型

强类型语言

  • 要求变量的使用严格符合规定,所有变量都必须先定义后才能使用

弱类型语言

JAVA数据类型

  • 基本类型(primitive type)
    • 数值型
      • 整数类型
        • byte占1个字节
        • short占2个字节
        • int占4个字节
        • long占8个字节
      • 浮点类型
        • float占
        • double占
      • 字符类型
        • char占2个字节
    • boolean类型
      • 占1位true/false
  • 引用类型(reference type)
    • 接口
    • 数组

注意:最好完全使用浮点数进行判断

// 所有的字符本质还是数字

转义字符

\t 制表符

\n 换行

boolean扩展

boolean flag = true;

if (flag==true):{}

if(flag):{}

代码要精简易读

类型转换

由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换

低------------------------------------------------------------------->高

byte,–>short,–>char,–>int,–>long,–>float,–>double

// 强制转换(类型)变量名 高–>低转换

// 自动转换 低–>高转换

注意点:

1.不能对布尔值进行转换

2.不能把对象类型转换为不相干的类型

3.在把高容量转换到低容量的时候,强制转换

4.转换的时候可能存在内存溢出,或精度问题

5.操作比较大的数的时候,注意溢出问题

*** byte支持范围-128~127,注意赋值溢出的问题

变量

  • 每个变量都必须声明其类型
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
  • 每一个变量声明结束后要以分号";"结束

常量

  • 定义常量

    final 常量类型 常量名=常量值

    例:final double PI=3.14

运算符

  • 算数运算符:+,-,*,/
  • 赋值运算符:=
  • 关系运算符:>,<,<=,>=,!=
  • 逻辑运算符
  • 位运算符
  • 条件运算符
  • 扩展赋值运算符

Java流程控制

  • 用户交互Scanner

    基本语法

    Scanner s = new Scanner(System.in);

    Scanner语法中方法next()和nextLine()

  • if-else

  • switch多选择结构

    switch(expression){

    ​ case value:

    ​ //语句

    ​ break;

    ​ case value:

    ​ //语句

    ​ break;

    ​ case value:

    ​ //语句

    ​ break;

    }

  • while

  • do-while

  • for

方法

## 方法定义 

方法命名规则:驼峰式命名

  • 方法是解决一类问题的步骤的有序集合
  • 方法包含于子类或对象中
  • 方法在程序中被创建,在其他地方被引用

方法原则

一段用来完成特定功能的代码片段,定义一个方法包含以下语法:

  • 修饰符
  • 返回值类型
  • 方法名
  • 参数类型(可选)
    • 实参
    • 形参:用来定义参数
  • 方法体:包含具体的语句,定义该方法的功能

修饰符 返回值类型 方法名(参数类型 参数名){

​ 方法体

​ return 返回值

}

方法重载

  • 重载:在一个类中,有相同的函数名称,但形参不同的函数

  • 方法重载的规则:

    • 方法名称必须相同
    • 参数列表必须不同(个数不同,或类型不同,参数排列顺序不同等)
    • 方法的返回类型可以相同也可以不相同
    • 仅仅返回类型不同不足以成为方法的重载
  • 实现理论:

    • 方法名称相同时,编译器会根据调用方法的参数个数,参数类型等逐个匹配,以选择对应的方法,如果匹配失败则编译器报错

命令行传参

可变参数

  • 再方法声明中,再指定参数类型后加一个省略号(…)
  • 一个方法只能指明一个可变参数,它必须是方法最后一个参数.任何普通的参数必须在它之前声明.

数组

数组长度固定,定义后不可改变

元素类型必须相同

数组元素可以任意类型

数组变量是引用类型

初始化:

  • 静态初始化
    • 定义的时候直接赋值
  • 动态初始化
    • 定义时不赋值,会被默认初始化,默认值为"0"

下标合法区间[0,length-1]

  • 数组的使用
    • 普通的for循环
    • for each循环
    • 数组做方法入参
    • 数组做返回值

面向对象

类:属性+方法

面向过程&面向对象

  • 面向过程思想:

    • 步骤清晰简单,第一步做什么,第二步~
    • 面对过程适合处理较为简单的问题
  • 面向对象思想

    • 物以类聚,分类的思维模式
    • 面向对象适合处理复杂的问题

什么是面向对象

  • 以类的方式组织代码,以对象的组织数据
  • 抽象:变成思想!持续学习
  • 三大特性
    • 封装
    • 继承
    • 多态
  • 从认识论角度考虑是先有对象后有类.对象,是具体的事物.类,是抽象的,是对对象的抽象
  • 从代码运行角度考虑是先有类后有对象.类是对象的模板.

方法的调用

类与对象的关系

  • 类:一种抽象的数据类型
  • 对象:是抽象概念的具体实例

构造器:

alt+insert---->constructor

  • 使用new关键字,本质是在构造器
  • 有参构造

封装

  • 高内聚:类的内部数据操作细节自己完成
  • 低耦合:仅暴露少量方法
  • 属性私有,get/set
    • 提高程序的安全性,保护数据
    • 隐藏代码的实现细节
    • 系统可维护增加了

继承

重写

  • static方法属于类,它不属于实例不能重写
  • final 常量;不能重写
  • private方法:私有不能重写

多态

  • 对象能执行哪些方法,主要看左边的类型,和右边关系不大

  • 子类重写了父类的方法,执行子类的方法

  • 注意事项

    • 多态是方法的多态,属性没有多态
    • 父类和子类,有联系(类型转换异常报错ClassCastException)
    • 存在条件:继承关系,方法需要重写,父类引用指向子类对象
  • instanceof:判断实例类型是否相似

  • 父类引用 指向子类的对象

  • 把子类转换为父类,向上转型

  • 把父类转换为子类,向下转型:强制转换

  • 方便方法的调用,减少重复的代码;简洁

    抽象: 封装|继承|多态

static详解

  • 静态属性:加了static字段的变量变成了类的变量,可以被所有实例共享,不属于某个实例
  • 静态方法:不需要new可以直接通过类调用如:Student.go();
  • 静态代码块:只执行一次,比匿名代码块和构造方法优先执行.

final:修饰的类不可以被继承

抽象类

  • 抽口可以多继承
  • 不能new这个抽象类,只能靠子类去实现它:约束
  • 抽象类中可以写普通的方法
  • 抽象方法必须再抽象类中------定义了抽象类,方法必须是抽象的
    • new,存在构造器?
    • 存在的意义? 节省代码量,提高开发效率

接口

  • 定义:就是规范,定义的一组规则,自己无法写方法约束和实现分离:面向接口编程本质是契约

  • 实现:实现了接口的类,就需要重写接口中的方法.

    • interface 定义关键字

      ​ public interface UserService{

      			void run(String name);
      

      }

  • 约束

  • 定义一些方法,让不同的人实现

  • 接口中所有定义的方法都是抽象的 public abstract

  • public static final

  • 接口不能被实例化~,接口中没有构造方法

  • implements可以实现多个接口

  • 必须要重写接口中的方法

内部类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值