JAVA学习记录day3

1.Java中的API

1.1 Java API概述

Java API(Application Programming Interface,应用程序编程接口)是Java开发者用来访问Java运行环境的接口。Java API包含了Java运行环境提供的各种功能,包括基础类库、核心类库、扩展类库、第三方类库等。Java API的设计目标是提供一套统一的、易于使用的API,使得开发者可以快速、方便地开发出功能丰富、可靠的Java程序。

Java API的主要组成部分包括:

  • 基础类库:Java API的基础类库包含了Java运行环境提供的最基本的类和接口,包括用于输入/输出、网络通信、多线程、日期和时间、文件系统、数据库访问、XML处理、加密、压缩、日志记录、单元测试等功能的类和接口。
  • 核心类库:Java API的核心类库包含了Java运行环境提供的高级功能类和接口,包括集合类、多线程类、网络通信类、数据库访问类、XML处理类、加密类、压缩类、日志记录类、单元测试类等。
  • 扩展类库:Java API的扩展类库包含了Java运行环境提供的扩展功能类和接口,包括JavaBeans、JavaMail、Java Activation Framework、Java Cryptography Extension、Java Image I/O、Java Naming and Directory Interface、Java Plug-in、Java Print Service、Java Transaction API、Java Web Services、Java XML Binding等。
  • 第三方类库:Java API的第三方类库包含了Java开发者通过第三方提供的类和接口,包括Apache、Eclipse、Google、JBoss、Spring等。

Java API的设计理念是面向对象、可扩展性、健壮性、安全性、可移植性和可靠性。Java API的设计目标是提供一套统一的、易于使用的API,使得开发者可以快速、方便地开发出功能丰富、可靠的Java程序。

1.2 Java API的使用

Java API的使用主要分为以下几步:

  1. 导入Java API:在Java程序中,需要导入Java API才能调用其提供的功能。导入Java API的方法有两种:
    • 直接导入:直接导入Java API的jar文件,在项目的build path中添加jar文件。
    • 间接导入:间接导入Java API的jar文件,在项目的build path中添加依赖管理工具(如Maven、Gradle)并在pom.xml或build.gradle文件中添加依赖。
  2. 调用Java API:调用Java API的方法有两种:
    • 直接调用:直接调用Java API的类和接口。
    • 间接调用:间接调用Java API的类和接口,通过类的实例、类的方法、类中的静态方法等。

具体调用方法为:
1.先创建package,再创建类;
2.直接创建类,名字为包名.类名;

对比c++,包类似于头文件库,类类似于头文件库中的函数。

1.3 使用例子

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.printf("请输入您的名字:");
        String name = scanner.nextLine();
        System.out.println("Hello, " + name + "!");
    }
}

随机数生成

import java.util.Random;

public class RandomNumber {
    public static void main(String[] args) {
        Random random = new Random();
        int number = random.nextInt(100);
        //100以内的随机数,包括0,不包括100的整数
        System.out.println("随机数:" + number);
    }
}

1.4 常见API

  • Scanner类:用于从控制台读取输入,并将其转换为字符串。
  • Random类:用于生成随机数。
  • String类:用于操作字符串。
char []chars = {'a','b','c'};
byte []bytes = {97,98,99};
String str = new String(chars);
String str2 = new String(bytes);
String str3 = "abc";
//注意,str!=str2,str2!=str3,字符串比较String比较的是地址,而不是内容。

练习:实现猜数字的小游戏

import java.util.Random;
import java.util.Scanner;

public class GuessNumber {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("========================");
        System.out.println("=========猜数字==========");
        System.out.print("请输入生成的随机数的范围:0~");
        int num = sc.nextInt();
        Random r = new Random();
        int ans = r.nextInt(num);
        boolean flag=false;
        while(!flag){
            System.out.print("请输入你要猜的数字:");
            num=sc.nextInt();
            if(ans==num){
                flag=true;
                System.out.println("恭喜您,猜对了!");
            }
            else if(ans>num){
                System.out.println("猜小了");
            }
            else{
                System.out.println("猜大了");
            }
        }
    }
}

2.注释与注解

2.1 注释

//单行注释
/*
多行注释
*/

注释是用来解释代码的,对代码的功能、实现原理、使用方法等进行说明。注释是程序员用来解释代码的一种方式,可以帮助程序员更好地理解代码。

2.2 注解

@Override//重载注解
@Deprecated//废弃注解
@SuppressWarnings("unchecked")//抑制警告注解
public void method() {
    //...
}   

注解允许在代码中嵌入元数据。元数据是数据的数据,它是关于数据的数据。注解可以用来提供信息给编译器、运行时环境或其他工具,这些信息可以用于生成代码、做一些额外的处理等。

3.集合

3.1 创建集合对象

//创建集合对象
List<String> list = new ArrayList<>();
//String是集合的类型,即泛型
Set<String> set = new HashSet<>();
Map<String, Integer> map = new HashMap<>();

3.2 集合的基本操作

//添加元素
list.add("apple");
set.add("banana");
map.put("orange", 10);
//获取元素
String fruit = list.get(0);
Integer price = map.get("orange");
//删除元素
list.remove(0);
set.remove("banana");
map.remove("orange");
//判断元素是否存在
if(list.contains("apple")){
    //...
}
if(map.containsKey("orange")){
    //...
}
//遍历集合
for(String fruit : list){
    //...
}
for(Map.Entry<String, Integer> entry : map.entrySet()){
    //...
}

练习:皇家赌场:猜数字和赌大小

import java.util.Random;
import java.util.Scanner;


public class Homework {
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        System.out.println("===================================");
        System.out.println("欢迎来到皇家赌场!\n赌场规则:\n1. 玩家可以选择猜数字或赌大小。\n2. 在赌大小中,玩家可以下注。\n3. 在猜数字中,若猜对玩家则获得100元,若猜错则输掉10元。\n4. 玩家可以选择继续玩或者退出游戏。");
        while(true){
            System.out.println("猜数字or赌大小or退出游戏?(1/2/3)");
            int choice = sc.nextInt();
            if(choice == 1){
                guessNumber();
            }else if(choice == 2) {
                betSize();
            }else
            {
                System.out.println("欢迎下次光临!");
                break;
            }
        }
    }
    public static void guessNumber(){
        System.out.println("-----------------------");
        System.out.print("请输入1~6之间的数字:");
        int num = sc.nextInt();
        Random random = new Random();
        int ans = random.nextInt(5) + 1;
        if(num == ans){
            System.out.println("恭喜您,猜对了!\n您获得100元!");
        }else {
            System.out.println("很遗憾,猜错了!\n您输掉了10元!");
        }
    }
    public static void betSize(){
        Scanner sc = new Scanner(System.in);
        System.out.println("-----------------------");
        System.out.print("请输入您要下注的金额:");
        long money = sc.nextLong();
        Random random = new Random();
        int size = random.nextInt(5) + 1;
        System.out.println("请问您是赌大还是赌小?(1/2)");
        int choice2 = sc.nextInt();
        if(choice2 == 1&& size > 3){
            System.out.println("恭喜您,赢了!\n您赢得了"+money*(random.nextInt(2)+1)+"元");
        }else if(choice2 == 2&& size < 4){
            System.out.println("恭喜您,赢了!\n您赢得了"+money*(random.nextInt(2)+1)+"元");
        }else{
            System.out.println("很遗憾,输了!\n您失去了"+money+"元");
        }
    }
}

练习:生成一个含有十个不同随机数的数组

import java.util.Random;

public class RandomArray {
    public static void main(String[] args) {
        Random random = new Random();
        int[] arr = new int[10];
        for(int i=0;i<arr.length;i++){
            int num = random.nextInt(100);
            while(isContain(arr,num)){
                num = random.nextInt(100);
            }
            arr[i] = num;
        }
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i] + " ");
        }
    }
}

练习:给一串字符串,判断大写字母、小写字母、数字、其他字符的个数。

import java.util.Scanner;

public class CountChar {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入字符串:");
        String str = sc.nextLine();
        int upper = 0, lower = 0, digit = 0, other = 0;
        for(int i=0;i<str.length();i++){
            char ch = str.charAt(i);
            if(Character.isUpperCase(ch)){
                upper++;
            }else if(Character.isLowerCase(ch)){
                lower++;
            }else if(Character.isDigit(ch)){
                digit++;
            }else{
                other++;
            }
        System.out.println("大写字母:" + upper);
        System.out.println("小写字母:" + lower);
        System.out.println("数字:" + digit);
        System.out.println("其他字符:" + other);
    }
}

练习:学生管理系统,要求增删改学生信息和列表查询

4.类与对象

4.1 对象

对象是类的实例,是程序运行时创建的实例。对象包含了数据和方法。万事万物皆为对象。

4.2 类

类是对象的模板,是创建对象的蓝图。类包含了数据成员(字段)、方法成员(函数)、构造方法、静态成员(类变量)、常量成员(常量)等。

4.3 方法

方法是类中定义的函数,是类的行为。方法可以访问类的成员变量和其他方法。

4.4 构造函数

构造函数是类的特殊方法,它在对象创建时调用,用来初始化对象。示例代码:

public class Person {
    private String name;
    private int age;
    public Person(String name, int age) {//有参构造函数
        this.name = name;
        this.age = age;
    }
    public Person() {//无参构造函数
        this.name = "unknown";
        this.age = 0;  
    }
}
  1. 构造函数的名称必须与类名相同。
  2. 构造函数没有返回值,但可以返回对象。
  3. 构造函数可以有参数,参数类型必须与类成员变量类型一致。
  4. 构造函数可以调用其他构造函数。
  5. 构造函数的作用是初始化对象,所以构造函数不能有返回值。

4.5 函数抽象

函数抽象是指将一个复杂的过程分解为多个步骤,每个步骤都有明确的输入和输出,这样就可以用函数来表示。

4.6 面向对象-多态

多态是指具有不同功能的对象对同一消息作出不同的响应。多态是面向对象编程的重要特征。
示例:

public class Animal {
    public void eat() {
        System.out.println("动物吃东西");    
    }
}
public class Dog extends Animal {
    public void eat() {
        System.out.println("狗吃骨头");
    }
}
public class Cat extends Animal {
    public void eat() {
        System.out.println("猫吃鱼");
    }
}
public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal();
        Dog dog = new Dog();
        Cat cat = new Cat();
        animal.eat();
        dog.eat();
        cat.eat();
    }
}

输出:

动物吃东西
狗吃骨头
猫吃鱼

不同的类的调用

具体类: father类 对象= new 子类对象;
抽象类: 不能实例化,只能被继承。
抽象方法定义
格式:
修饰符 abstract 返回值 形参列表();

4.7 接口

  • 接口是高度抽象的,所有接口中全部是抽象方法
  • 高版本的Java中,接口可以定义具体的实现方法
  • 接口是定义规范
  • 接口实现的关键字:implements
  • 32
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值