java打卡学习5:java基础学习

目录

​编辑

一、java程序结构

二、java基本数据类型

引用数据类型

常见引用数据类型

三、java修饰符

四、java常量和变量

五、java运算

[六、Java 数组](#六、Java 数组)

[七、Java 枚举](#七、Java 枚举)

八、java关键词

[九、面向对象的 5 大原则](#九、面向对象的 5 大原则)

[十、面向对象的 3 大特性](#十、面向对象的 3 大特性)

封装

[封装:手机的 "外壳与接口"](#封装:手机的 “外壳与接口”)

继承

多态


一、java程序结构

二、java基本数据类型

  • 整数类型:byte,short,int,long
  • 浮点数类型:float,double
  • 字符类型:char
  • 布尔类型:boolean

Java基本数据类型占用的字节数:

引用数据类型

常见引用数据类型
数据类型 默认值
数组 null
null
接口 null

接口是不能被实例化的,我们需要对其进行实现。

java 复制代码
// 初始化一个对象
Pet dog = new Pet();
// 初始化一个数组
int[] arr = new int[10];

三、java修饰符

  • 访问控制修饰符 : default, public , protected, private
  • 非访问控制修饰符 : final, abstract, static, synchronized

四、java常量和变量

常量可以分为如下 3 种类型:

  • 静态常量final 之前用 public staic 修饰,表示该常量的作用域是全局的,我们不用创建对象就能够访问它。
  • 成员常量:类似于成员变量,但是最大的不同在于它不能被修改。
  • 局部常量:作用类似于局部变量,不同之处也在于不能修改。

变量分为下面3种:

  • 局部变量
  • 类变量(静态变量)
  • 成员变量(非静态变量)

五、java运算

  • 算术运算符
  • 关系运算符
  • 位运算符
  • 逻辑运算符
  • 赋值运算符
  • 条件运算符

三元运算符:

复制代码
关系表达式?表达式 1:表达式 2;

在Java的计算表达式中,运算优先级从高到低依次是:

布尔运算是一种关系运算,包括以下几类:

  • 比较运算符:>>=<<===!=
  • 与运算 &&
  • 或运算 ||
  • 非运算 !

关系运算符的优先级从高到低依次是:

  • !
  • >>=<<=
  • ==!=
  • &&
  • ||

六、Java 数组

数组是储存在堆上的对象,可以保存多个同类型变量。

Java的数组有几个特点:

  • 数组所有元素初始化为默认值,整型都是0,浮点型是0.0,布尔型是false
  • 数组一旦创建后,大小就不可改变
java 复制代码
// 数组
public class Main {
    public static void main(String[] args) {
        // 5位同学的成绩:
        int[] ns = new int[5];
        ns[0] = 68;
        ns[1] = 79;
        ns[2] = 91;
        ns[3] = 85;
        ns[4] = 62;
    }
}
  • 静态初始化
java 复制代码
int[][] arr1 = {{1, 2, 4}, {5, 7, 9}, {19, 12, 18}};
  • 动态初始化
java 复制代码
int[][] arr1= new int[3][3];
arr1 = new int[][]{{1, 2, 4}, {5, 7, 9}, {19, 12, 18}};

int[][] arr2= new int[3][];
arr2 = new int[][]{{1, 2, 4}, {5, 7, 9}, {19, 12, 18}};

动态初始化:手动指定数组长度,然后由系统给出默认初始化值。

静态初始化:手动指定数组元素,然后系统会根据元素个数计算出数组长度。

七、Java 枚举

java 复制代码
public enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
 

枚举常量通常使用大写字母命名,多个常量之间用逗号分隔。枚举可以实现接口,但不能继承其他类(因为所有枚举隐式继承 java.lang.Enum)。枚举还可以覆盖方法,例如 toString()

八、java关键词

这是一种事先定义好的,有特定意义的标识符,也叫做保留字。对于 Java 编译器有着特殊意义,用来表示一种数据类型,或者表示程序的结构等。此外,关键字不能用作变量名、方法名、类名、包名和参数名。常见的关键字可以分为如下几类,具体的关键字如下图所示:

  • 访问控制类
  • 类、方法及变量修饰符类
  • 程序控制类
  • 错误处理
  • 包相关
  • 基本类型
  • 变量引用
  • 保留字

九、面向对象的 5 大原则

  • 单一职责原则 SRP
  • 开放封闭原则 OCP
  • 里氏替换原则 LSP
  • 依赖倒置原则 DIP
  • 接口分离原则 ISP

十、面向对象的 3 大特性

封装

封装:手机的 "外壳与接口"

核心:内部复杂细节藏起来,只给你简单的操作方式。

  • 手机内部:CPU、电池、电路板、信号模块,非常复杂,你也看不懂、不能乱碰。
  • 给你暴露的:屏幕、按键、充电口、耳机孔。
  • 你不用管内部怎么工作,只要按按钮、点屏幕就能用。

对应 Java:

  • private 把成员变量藏起来(内部零件)
  • public 方法提供操作(按键、接口)
  • 防止别人乱改内部数据,保证安全

一句话:把复杂包起来,只留简单入口

继承

核心:子类沿用父类的功能,再新增自己的特色。

先有一个基础手机类

  • 能打电话、发短信、充电、有屏幕

然后:

  • 智能手机 extends 基础手机继承了打电话、发短信,新增:触屏、上网、APP
  • 游戏手机 extends 智能手机继承上面所有,新增:散热风扇、高刷屏、游戏按键
  • 折叠屏手机 extends 智能手机继承上面所有,新增:折叠屏、分屏模式

一句话:子承父业,少写重复代码,还能扩展新功能

多态

核心:同一个方法名,不同手机实现不一样。

所有手机都有一个方法叫:拍照 ()

  • 普通手机拍照:模糊、无美颜
  • 智能手机拍照:清晰、自动对焦
  • 旗舰手机拍照:夜景模式、美颜、长焦
  • 折叠屏手机拍照:外屏预览、多角度拍摄

一句话:同名方法,不同对象,不同表现。

相关推荐
zhangzeyuaaa2 小时前
Python getter/setter 正确用法详解
开发语言·python
南境十里·墨染春水2 小时前
C++ 笔记 深赋值 浅赋值(面向对象)
开发语言·jvm·c++·笔记
今儿敲了吗2 小时前
算法复盘——差分
数据结构·c++·笔记·学习·算法
Lyyaoo.2 小时前
【JAVA基础面经】JAVA的面向对象特性
java·开发语言·windows
浮游本尊2 小时前
Java学习第37天 - 领域驱动设计(DDD)与 CQRS 实战
java
米糕闯编程2 小时前
xshell使用CentOS10 root用户登录,权限问题
java·linux
sxhcwgcy2 小时前
Python中的简单爬虫
java
第二层皮-合肥2 小时前
50天学习FPGA第32天-添加HDL属性调试
学习·fpga开发
小温冲冲2 小时前
Qt WindowContainer 完整实战示例:QWidget 嵌入 QML
开发语言·数据库·qt