博客
关于我
Java学习----课程二
阅读量:501 次
发布时间:2019-03-07

本文共 6775 字,大约阅读时间需要 22 分钟。

第一章 面向对象

1-1 类和对象:万物皆对象

在Java中,类是用来描述一类事物的属性和行为的模板,对象则是类实例化后的一种具体存在。所有的东西都可以看作是对象,包括我们日常生活中的物品和抽象概念。

1-2 定义Java中的类

定义一个类的步骤如下:

  • 定义类名,通常首字母大写
  • 在类中定义属性(成员变量)
  • 在类中定义方法(成员方法)
  • 以下是一个简单的Java类定义示例:

    public class Telephone {
    // 属性
    float screen;
    float cpu;
    // 方法
    public void call() {
    System.out.println("打电话");
    }
    public void sendMessage() {
    System.out.println("发短信");
    }
    }

    1-3 使用Java对象

    使用对象的步骤如下:

  • 创建对象:类名 对象名 = new 类名();
  • 使用对象的属性:对象名.属性
  • 调用对象的方法:对象名.方法();
  • 例如:

    Telephone phone = new Telephone();
    phone.screen = 5; // 设置属性
    phone.call(); // 调用方法

    1-5 Java中的成员变量和局部变量

    • 成员变量:在类中定义,作用域为整个类内部。
    • 局部变量:在方法中定义,作用域为该方法内部。

    注意:在同一变量名的情况下,局部变量具有更高的优先级。

    1-6 Java中的构造方法

    构造方法用于初始化对象。构造方法的语法如下:

    public 构造方法名(参数1,参数2) {
    // 初始化代码
    }

    默认会自动创建一个无参数的构造方法。以下是一个简单的构造方法示例:

    public Telephone(float newScreen) {
    screen = newScreen;
    }

    1-7 Java中的静态变量

    静态变量属于类,而不是对象,可以通过类名直接访问。静态变量可以修饰变量、方法和代码块。

    示例:

    public class HelloWorld {
    static String hobby = "shopping";
    public static void main(String[] args) {
    System.out.println(HelloWorld.hobby);
    HelloWorld hello = new HelloWorld();
    System.out.println(hello.hobby);
    hello.hobby = "swimming";
    }
    }

    1-9 Java中的静态方法

    静态方法属于类,可以通过类名直接调用。静态方法不能直接访问非静态成员。

    示例:

    public class HelloWorld {
    public static void print() {
    System.out.println("打印");
    }
    public static void main() {
    HelloWorld.print();
    HelloWorld hello = new HelloWorld();
    hello.print();
    }
    }

    1-10 Java中的静态初始化块

    静态初始化块用于给静态变量赋值,类加载时执行一次。

    示例:

    public class HelloWorld {
    static int num3 = 83;
    static {
    num3 = 83;
    System.out.println("通过静态初始化块为静态变量num3赋值");
    }
    }

    第二章 封装

    2-1 什么是Java中的封装

    封装是面向对象的核心特性之一。通过封装,可以将类的内部信息隐藏起来,只允许通过公共方法进行操作和访问。

    封装的实现步骤:

  • 修改属性的可见性为private
  • 创建gettersetter方法
  • gettersetter方法中添加属性控制语句
  • 示例:

    public class HelloWorld {
    private float screen;
    public float getScreen() {
    return screen;
    }
    public void setScreen(float newScreen) {
    screen = newScreen;
    }
    public static void main(String[] args) {
    HelloWorld hello = new HelloWorld();
    hello.setScreen(20.1f);
    float result = hello.getScreen();
    System.out.println(result);
    }
    }

    2-2 使用包管理Java类

    包用于组织和管理Java文件,避免类名冲突。包名可以使用小写字母和.分隔。

    示例:

    package com.jason.music;
    class MyClassMusic {}

    第三章 继承

    3-1 Java中的继承

    继承是Java中实现多态的基础,子类可以继承父类的属性和方法。

    语法:

    class 子类 extends 父类 {
    }

    示例:

    class Dog extends Animal {
    }

    3-2 Java中的方法重写

    方法重写要求返回类型、方法名和参数类型与父类方法一致。

    示例:

    class Dog extends Animal {
    @Override
    public void eat() {
    System.out.println("狗在吃东西");
    }
    }

    3-4 Java中的继承初始化顺序

    初始化顺序为:父类属性初始化 → 父类构造方法 → 子类属性初始化 → 子类构造方法。

    示例:

    public class Parent {
    int x;
    public Parent() {
    System.out.println("父类构造方法");
    }
    }
    public class Child extends Parent {
    int y;
    public Child() {
    super();
    System.out.println("子类构造方法");
    }
    }

    3-5 Java中的final使用

    final可以修饰类、方法和变量,具有以下作用:

    • 类:不能被继承
    • 方法:不能被重写
    • 属性:不能被初始化
    • 变量:只能赋值一次

    示例:

    public final class Animal {}

    3-7 Java中的super使用

    super用于访问父类的属性和方法。

    示例:

    public class Dog extends Animal {
    int age = 20;
    public void eat() {
    System.out.println("狗在吃东西");
    }
    public void method() {
    System.out.println(super.age);
    super.eat();
    }
    }

    第四章 多态

    4-1 Java中的多态

    多态包括引用多态和方法多态。

    • 引用多态:父类引用可以指向子类对象。
    • 方法多态:子类对象调用方法时,会根据实际对象调用对应的方法。

    示例:

    Animal obj1 = new Dog();
    obj1.eat(); // 调用Dog类的eat方法

    4-2 多态中的引用类型转换

    • 向上类型转换:隐式转换,无需声明。
    • 向下类型转换:必须使用instanceof检查,否则会抛出ClassCastException。

    示例:

    Object obj = new Dog();
    if (obj instanceof Dog) {
    Dog d = (Dog) obj;
    System.out.println(d.age);
    }

    4-3 Java中的抽象类

    抽象类可以定义抽象方法,子类必须实现这些方法。

    示例:

    public abstract class Animal {
    public abstract void eat();
    }

    4-5 Java中的接口

    接口定义了一组方法的规范,类可以实现多个接口。

    示例:

    public interface IPlayGame {
    void playGame();
    }
    public class SmartPhone implements IPlayGame {
    public void playGame() {
    System.out.println("玩游戏");
    }
    }

    第五章 阶段练习

    5-1 阶段练习

    public static void main(String[] args) {
    Chinese p = new Chinese();
    American a = new American();
    p.say();
    a.say();
    APerson p1 = new Chinese();
    APerson a1 = new American();
    p1.say();
    a1.say();
    }

    5-2 综合练习

    package com.jason;
    import java.util.Scanner;
    public class Vehicle {
    private String name;
    private int rentingPDay;
    private int peopleCap;
    private int cargoCap;
    public Vehicle(String name, int rentingPDay, int peopleCap, int cargoCap) {
    setName(name);
    setRentingPDay(rentingPDay);
    setPeopleCap(peopleCap);
    setCargoCap(cargoCap);
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public int getRentingPDay() {
    return rentingPDay;
    }
    public void setRentingPDay(int rentingPDay) {
    this.rentingPDay = rentingPDay;
    }
    public int getPeopleCap() {
    return peopleCap;
    }
    public void setPeopleCap(int peopleCap) {
    this.peopleCap = peopleCap;
    }
    public int getCargoCap() {
    return cargoCap;
    }
    public void setCargoCap(int cargoCap) {
    this.cargoCap = cargoCap;
    }
    }
    public class DaDaMain {
    public static void main(String[] args) {
    Vehicle[] vehicles = {
    new Vehicle("奥迪A4", 500, 4, 0),
    new Vehicle("马自达6", 400, 4, 0),
    new Vehicle("皮卡雪6", 450, 4, 2),
    new Vehicle("金龙", 800, 20, 0),
    new Vehicle("松花江", 400, 0, 4),
    new Vehicle("依维柯", 1000, 0, 20)
    };
    Scanner scanner = new Scanner(System.in);
    int chooseCar = 0;
    double totalCost = 0;
    int carCount = 0;
    String selectedVp = "";
    String selectedVc = "";
    System.out.println("欢迎使用答答租车系统:");
    System.out.println("您是否想租车? 1 是 0 否");
    int choice = scanner.nextInt();
    if (choice != 0) {
    System.out.println("您可租车的类型及价目表:");
    System.out.println("序号 骑车名称 租金 容量");
    for (int i = 0; i < vehicles.length; i++) {
    System.out.println((i+1) + " " + vehicles[i].getName() + " " + vehicles[i].getRentingPDay() + "元/天 " + vehicles[i].getPeopleCap() + "人");
    }
    System.out.println("\n请输入您要租的车辆类型序号(1-" + vehicles.length + "):");
    int selectedType = scanner.nextInt() - 1;
    selectedVp = vehicles[selectedType].getName();
    carCount++;
    totalCost += vehicles[selectedType].getRentingPDay();
    System.out.println("请输入您要租车的天数:");
    int days = scanner.nextInt();
    totalCost *= days;
    System.out.println("选择的车辆: " + selectedVp + ", 天数: " + days + ", 总费用: " + totalCost + "元");
    }
    }
    }

    转载地址:http://qjmcz.baihongyu.com/

    你可能感兴趣的文章
    mysql5.7安装
    查看>>
    mysql5.7性能调优my.ini
    查看>>
    MySQL5.7新增Performance Schema表
    查看>>
    Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
    查看>>
    Webpack 之 basic chunk graph
    查看>>
    Mysql5.7版本单机版my.cnf配置文件
    查看>>
    mysql5.7的安装和Navicat的安装
    查看>>
    mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
    查看>>
    Mysql8 数据库安装及主从配置 | Spring Cloud 2
    查看>>
    mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
    查看>>
    MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
    查看>>
    MYSQL8.0以上忘记root密码
    查看>>
    Mysql8.0以上重置初始密码的方法
    查看>>
    mysql8.0新特性-自增变量的持久化
    查看>>
    Mysql8.0注意url变更写法
    查看>>
    Mysql8.0的特性
    查看>>
    MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    查看>>
    MySQL8修改密码的方法
    查看>>
    Mysql8在Centos上安装后忘记root密码如何重新设置
    查看>>
    Mysql8在Windows上离线安装时忘记root密码
    查看>>