Java面向对象程序设计

学号:202402150330

第1章:初识Java与面向对象程序设计

1.1 Java 概述

1.1.1 计算机编程语言发展史

  • 早期编程语言
    • 机器语言:计算机可以直接识别的二进制指令。
    • 汇编语言:用助记符表示机器指令,提高了可读性。
  • 高级编程语言
    • C语言:结构化编程语言,广泛应用于系统软件开发。
    • C++:在C语言基础上增加了面向对象的特性。
    • Java:跨平台、面向对象的编程语言,广泛应用于企业级应用和移动应用开发。

1.1.2 Java 语言的特点

  • 简单:语法简洁,易于学习。
  • 面向对象:支持面向对象编程,提高了代码的复用性和可维护性。
  • 平台无关:一次编写,到处运行(Write Once, Run Anywhere)。
  • 健壮:强类型检查,异常处理机制,减少了错误的发生。
  • 安全:沙箱机制,防止恶意代码。
  • 高性能:即时编译(JIT)技术,提高了运行效率。
  • 多线程:内置多线程支持,提高了并发处理能力。
  • 动态:支持动态加载类,适应性强。

1.1.3 Java 跨平台原理

  • Java虚拟机(JVM):每种操作系统上都有一个对应的JVM实现。
  • 字节码:Java源代码编译成字节码(.class文件),字节码在JVM上运行。
  • “一次编写,到处运行”:Java程序可以在任何安装了JVM的操作系统上运行。

 


1.2 面向对象程序设计思想

1.2.1 面向过程程序设计

  • 特点
    • 以过程为中心,强调步骤和流程。
    • 代码结构较为松散,不易维护。
    • 适合简单的程序设计。

1.2.2 面向对象程序设计

  • 特点
    • 以对象为中心,强调数据和行为的封装。
    • 支持继承、多态等特性,提高了代码的复用性和可维护性。
    • 适合复杂系统的开发。

1.2.3 面向对象与面向过程程序设计的比较

  • 面向过程
    • 以函数为中心,关注函数的调用顺序。
    • 代码结构较为松散,不易维护。
    • 适合简单的程序设计。
  • 面向对象
    • 以对象为中心,关注对象的状态和行为。
    • 代码结构清晰,易于维护。
    • 适合复杂系统的开发。

 


1.3 Java 开发环境搭建

1.3.1 JDK 与 JRE

  • JDK(Java Development Kit)
    • 包含JRE和开发工具(如javac、java、jar等)。
    • 用于开发Java应用程序。
  • JRE(Java Runtime Environment)
    • 包含Java虚拟机(JVM)和Java类库。
    • 用于运行Java应用程序。

 


1.4 第一个 Java 程序:HelloWorld!

1.4.1 编写代码

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

1.4.2 代码解析

  • public class HelloWorld:定义一个公共类HelloWorld
  • public static void main(String[] args):定义主方法,程序的入口点。
  • System.out.println("Hello, World!"):输出字符串“Hello, World!”。

1.4.3 代码的注释

  • 单行注释// 这是一条单行注释
  • 多行注释/* 这是一条多行注释 */
  • 文档注释/** 这是一条文档注释 */

 


 

第2章 Java 编程基础

2.1 变量与常量

2.1.1 关键字和保留字

  • 关键字:Java预定义的具有特殊意义的单词,如classpublicstatic等。
  • 保留字:目前未使用,但保留未来使用的单词,如gotoconst等。

2.1.2 标识符与命名规范

  • 标识符:用于命名变量、方法、类等的名称。
    1. 标识符只能包含字母、数字、下划线(_)和美元符号($)。
    2. 标识符不能以数字开头。
    3. 标识符区分大小写。
    4. 建议使用有意义的名称,提高代码可读性。
    5. 常量建议使用全大写字母,单词之间用下划线连接。
  • 命名规范:驼峰命名法(camelCase),如firstNamelastName
  • 类名:首字母大写,如Person
  • 变量名和方法名:首字母小写,如firstNamegetAge

2.1.3 数据类型

  • 基本数据类型
    • 整型:byteshortintlong
    • 浮点型:floatdouble
    • 字符型:char
    • 布尔型:boolean
  • 引用数据类型
    • 类(Class)
    • 接口(Interface)
    • 数组(Array)

2.1.4 变量的定义与赋值

  • 变量定义
    int age = 25; // 定义并初始化整型变量
    double height = 1.75; // 定义并初始化浮点型变量
    char grade = 'A'; // 定义并初始化字符型变量
    boolean isStudent = true; // 定义并初始化布尔型变量
  • 变量赋值
    age = 30; // 重新赋值

2.1.5 常量

  • 常量:使用final关键字声明,一旦赋值不能改变。
    final double PI = 3.14159; // 定义常量

2.1.6 变量的类型转换

  • 自动类型转换:从低精度类型自动转换为高精度类型。
    int num1 = 10;
    double num2 = num1; // 隐式类型转换
  • 强制类型转换:从高级类型到低级类型
    double num2 = 10.5;
    int num1 = (int) num2; // 显式类型转换

2.1.7 Scanner 的使用

  • Scanner:用于从控制台读取用户输入。
    import java.util.Scanner;
    
    public class ScannerExample {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.print("Enter your name: ");
            String name = scanner.nextLine(); // 读取一行字符串
            System.out.print("Enter your age: ");
            int age = scanner.nextInt(); // 读取整数
            System.out.println("Hello, " + name + "! You are " + age + " years old.");
        }
    }

 


2.2 运算符与表达式

2.2.1 算术运算符

  • 加法(+) 减法(-) 乘法(*) 除法(/) 取模(%)
    int x = 10;
    int y = 3;
    int sum = x + y; // 13
    int difference = x - y; // 7
    int product = x * y; // 30
    int quotient = x / y; // 3
    int remainder = x % y; // 1

2.2.2 赋值运算符

  • 简单赋值(=)
  • 复合赋值(+=, -=, *=, /=, %=)
    int x = 10;
    x += 5; // x = x + 5
    x -= 3; // x = x - 3
    x *= 2; // x = x * 2
    x /= 4; // x = x / 4
    x %= 3; // x = x % 3

2.2.3 关系运算符

  • 等于(==)
  • 不等于(!=)
  • 大于(>)
  • 小于(<)
  • 大于等于(>=)
  • 小于等于(<=)
    int a = 10;
    int b = 20;
    boolean isEqual = (a == b); // false
    boolean isNotEqual = (a != b); // true
    boolean isGreater = (a > b); // false
    boolean isLess = (a < b); // true
    boolean isGreaterOrEqual = (a >= b); // false
    boolean isLessOrEqual = (a <= b); // true

2.2.4 逻辑运算符

  • 逻辑与(&&)
  • 逻辑或(||)
  • 逻辑非(!)
    boolean a = true;
    boolean b = false;
    boolean andResult = (a && b); // false
    boolean orResult = (a || b); // true
    boolean notResult = !a; // false

2.2.5 位运算符

  • 按位与(&)
  • 按位或(|)
  • 按位异或(^)
  • 按位取反(~)
  • 左移(<<)
  • 右移(>>)
  • 无符号右移(>>>)
    int a = 5; // 二进制 0101
    int b = 3; // 二进制 0011
    int andResult = a & b; // 0001
    int orResult = a | b; // 0111
    int xorResult = a ^ b; // 0110
    int notResult = ~a; // 11111111111111111111111111111010
    int leftShiftResult = a << 1; // 1010
    int rightShiftResult = a >> 1; // 0010
    int unsignedRightShiftResult = a >>> 1; // 0010

2.2.6 三元运算符

  • 三元运算符(? :)
    int a = 10;
    int b = 20;
    int max = (a > b) ? a : b; // 20

2.2.7 运算符的优先级

  • 优先级:从高到低
    1. 括号 ()
    2. 后缀运算符 ++--
    3. 一元运算符 +-!~
    4. 乘法运算符 */%
    5. 加法运算符 +-
    6. 位移运算符 <<>>>>>
    7. 关系运算符 <><=>=
    8. 等于运算符 ==!=
    9. 位与运算符 &
    10. 位异或运算符 ^
    11. 位或运算符 |
    12. 逻辑与运算符 &&
    13. 逻辑或运算符 ||
    14. 条件运算符 ? :
    15. 赋值运算符 =+=-=*=/=%=&=|=^=<<=>>=>>>=

 


2.3 选择结构

2.3.1 if 语句

  • 单分支
    int age = 18;
    if (age >= 18) {
        System.out.println("You are an adult."); // 如果条件为真,执行此代码块
    }
  • 双分支
    int age = 16;
    if (age >= 18) {
        System.out.println("You are an adult."); // 如果条件为真,执行此代码块
    } else {
        System.out.println("You are a minor."); // 如果条件为假,执行此代码块
    }
  • 多分支
    int score = 85;
    if (score >= 90) {
        System.out.println("Grade: A"); // 如果条件为真,执行此代码块
    } else if (score >= 80) {
        System.out.println("Grade: B"); // 如果条件为真,执行此代码块
    } else if (score >= 70) {
        System.out.println("Grade: C"); // 如果条件为真,执行此代码块
    } else {
        System.out.println("Grade: D"); // 如果条件为假,执行此代码块
    }

2.3.2 switch 语句

  • switch:根据表达式的值匹配多个case。用于多分支选择
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值