当前位置: 首页 > news >正文

Java基础学习【Java】【三】

众所周知,Java面向对象的特性借鉴了c++的模型,而语法继承自C语言,因此,之后的学习与C语言基础的关系不大,主要是面向对象的内容。(持续更新修改中)

一、类与对象基础

1. 类

在Java中,类是构建对象的蓝图模板。通过类,我们可以定义对象的属性(状态)和方法(行为)。你可以将类理解为描述某些事物的属性和行为的集合,比如说,以狗为实例,类将描述狗的名字、年龄、颜色等,描述狗会做的行为,如叫、肚子饿等,类就是描述某些事物的一个大型容器。

// 类模板
public class Dog {
    // 成员变量(属性)
    String name;
    int age;
    String color;
    // 方法(行为)
    void barking() {
        System.out.println("汪汪!");
    }
    void hungry() {
        System.out.println("肚子饿了...");
    }
}

2. 对象

在Java中,对象是类的实例,代表特定类型的实体。你可以将对象理解为通过类创建的具体的事物,比如,你可以通过事先写好的类来创建一只狗,狗所具有的行为和属性由类中定义的来确定,类中没有的属性,狗也没有。

public class Main {
    public static void main(String[] args) {
        // 创建对象
        Dog myDog = new Dog();
        // 访问属性
        myDog.name = "金毛";
        myDog.age = 3;
        // 调用方法
        myDog.barking(); // 输出:汪汪!
    }
}

 二、构造函数

 1. 默认构造函数

public class Book {
    String title; 
    // 默认构造方法(编译器自动生成)
    public Book() {}
}

 2. 带参数构造函数

public class Book {
    String title;
    String author;
    // 自定义构造方法
    public Book(String title, String author) {
        this.title = title; // this指当前对象
        this.author = author;
    }
}
// 使用:
Book novel = new Book("Java编程思想", "Bruce Eckel");

三、成员变量 vs 局部变量

public class Student {
    // 成员变量(类范围内有效)
    String name;  
    public void setAge(int age) { // age是局部变量
        int temp = 20; // 局部变量(方法内有效)
        this.age = age + temp;
    }
}

四、封装与访问控制

public class BankAccount {
    // private实现封装
    private double balance;  
    // public方法提供访问接口
    public double getBalance() {
        return balance;
    }
    public void deposit(double amount) {
        if(amount > 0) {
            balance += amount;
        }
    }
}

五、继承

// 父类
class Animal {
    void eat() {
        System.out.println("吃东西");
    }
}
// 子类继承
class Dog extends Animal {
    void bark() {
        System.out.println("汪汪叫");
    }
    @Override // 方法重写
    void eat() {
        super.eat(); // 调用父类方法
        System.out.println("狗啃骨头");
    }
}
// 使用:
Dog myDog = new Dog();
myDog.eat(); // 输出:吃东西 → 狗啃骨头

六、多态

class Animal {
    void sound() {
        System.out.println("动物发出声音");
    }
}
class Cat extends Animal {
    @Override
    void sound() {
        System.out.println("喵喵~");
    }
}
class Duck extends Animal {
    @Override
    void sound() {
        System.out.println("嘎嘎!");
    }
}
// 测试多态:
Animal animal1 = new Cat();
Animal animal2 = new Duck();
animal1.sound(); // 输出:喵喵~
animal2.sound(); // 输出:嘎嘎!

关键概念总结:

1. 类是模板,对象是类的实例

2. 构造函数用于对象初始化

3. 封装通过访问修饰符实现

4. 继承实现代码复用(单继承)

5. 多态通过方法重写实现

6. static成员属于类而非对象

7. 方法重载:同名不同参

8. 方法重写:子类覆盖父类方法

相关文章:

  • 编辑器检视器面板简单扩展2+编辑器检视器面板深度扩展1
  • 【天梯赛】L2-008 最长对称字串(C++)
  • browser-use 库中异步函数执行时间装饰器
  • 搭建私人对外git空间
  • 内网渗透-DLL和C语言加载木马
  • OpenCV图像拼接(9)实现图像拼接功能的一个高级接口cv::Stitcher
  • C++面试题库
  • 【已解决】Git:为什么 .gitignore 不生效?如何停止跟踪已提交文件并阻止推送?
  • 算法 | 2024最新算法:鳑鲏鱼优化算法原理,公式,应用,算法改进研究综述,matlab代码
  • 科软25机试
  • 【服务端】使用conda虚拟环境部署Django项目
  • ESP32-CAM在PlatformIO IDE里实现OTA的几个小TIPS
  • java程序员实用英语学习总结
  • JBDev - Theos下一代越狱开发工具
  • OpenBMC:BmcWeb 生效路由2 Trie字典树添加节点
  • CentOS 7 磁盘及分区管理笔记
  • Redis 性能数据解读与问题排查优化版
  • Oracle 10G DG 修复从库-磁盘空间爆满导致从库无法工作
  • SvelteKit 最新中文文档教程(12)—— 高级路由
  • LeetCode 解题思路 26(Hot 100)
  • 网站排行查询/什么是口碑营销
  • 国土 住房与城乡建设部网站/创意设计
  • 现在学做网站赚钱吗/钟南山今天感染新冠了
  • 专门做问卷的网站/seo技术优化技巧
  • 北京个人网站建设/成人大学报名官网入口
  • 爱心捐赠网站怎么做/好口碑的关键词优化