还不懂什么叫面向对象?手把手带你充分入门Java

简介: 目录1.面向对象的引入及概念 1.初步解释面向对象含义 2.如何描述一个对象?2.类和对象的关系3.举例学生类的实现,加深理解

1.面向对象的引入及概念


1.初步解释面向对象含义    


所谓面向对象,其实是一种思想。这种思想,在竭力模仿我们的现实生活,让我们人看待世界的方式去看待程序。


从客观世界来看,我们的世界由两种东西组成:


     1.生活在客观世界中的个体(有生命的无生命都都是)


     2.个体之间的联系


正是因为现实世界中的个体们,“各司其职”,直接或间接的“相互协作”,才保证了这个世界的正常,有序的流转。


其实我们面向对象的程序世界和现实世界也极其类似


      1.运行中的程序,由多个个体(也就是我们的对象)组成  


      2.运行中的个体,需要相互协作,共同完成程序的功能


image.png


通过上面我们就明白了,要想写出一个面向对象的程序,也就是Java代码,必须先学会构建运行中的面向对象的基本组成单位---------对象。


试想,如果我们现实世界中,如果没有个体那还能叫世界吗?没有人类没有动物没有各种物品,这个世界还能正常运转吗?


2.如何描述一个对象?


假如有一天,突然有一个外星人来到地球,他看到了一只小花猫,他希望你向他介绍和描述一下,但是这世界上有千千万万只小花猫你怎么向他描述?下次他看见另外一只小花猫发现你和他描述的又不一样了。


       但是我们要明白,每只小花猫都有相同的属性和行为。我们把这些共性抽取出来,描述他们的属性和行为上的共性即可。


        对某种类型个体的一般性描述,其实就是类。类是同种物体在属性和行为上的集合与抽象


public class Cat {
    String colour;
    public void run(){
    }
}

上面这就是一个Cat类,因为猫都有不同颜色,所以它有一个colour颜色的属性,猫也都会跑,有的爱运动,有的懒洋洋不爱跑。但怎么确定猫的颜色呢?现在站在你和外星人面前的小花猫是一只白色的,那这只猫就是一个具体的小花猫对象。就像人是一个类,它代表的全世界的人类,而每一个人却又是一个具体的对象。


2.类和对象的关系


类和对象:


       1.类描述出了某种类型对象共有的属性和行为


       2.类描述了对象有哪些属性,具备哪些行为?(包括行为的具体实现)


       3.但是各个对象具体属性取什么值,只有具体的对象能确定。比如你说小狗是黑色的,那到底是你家的小狗是黑色的还是邻居家的?


对象与对象


       1.不同类的对象,具有不同的属性和行为


       2.同一个类的多个对象,虽然有不同的属性和行为,但是不同对象的属性取值看不同              


Java中定义类其实就是定义类的成员,包括成员变量和成员方法。我们通过成员变量来描述属性,成员方法来描述行为。


3.举例学生类的实现,加深理解


我们想创建一个学生类,首先要明白学生有什么属性?每个学生都有学号,姓名,性别。那学生都有什么行为了,学生肯定要会学习,要会休息。那我们就初步定义出了下面这个学生类


class Student {
    int id;//学号
    String name;//姓名
    boolean gender;//性别   男为true  女为false
    public void study(){    //表示学习这种行为的方法
        System.out.println(name+"学习ing");
    }
    public void sleep(){    //表示休息这种行为的方法
        System.out.println(name+"休息ing");
    }
    public Student(int id, String name, boolean gender) {//构造方法
        this.id = id;
        this.name = name;
        this.gender = gender;
    }
}

 上面就是一个学生类的实现,但是它指的是某个指定的学生吗?当然不是,还是回归到类与对象关系的问题上,现在我们有了学生类,那怎么去实现一个学生对象呢?我们先看以下代码              


public class Test {
    public static void main(String[] args) {
        Student stu1 = new Student(101, "张三", true);
        Student stu2 = new Student(102, "李四", false);
        Student stu3 = new Student(103, "王五", true);
    }
}

首先我们需要在main方法中,通过类名 对象名=new 类名()的格式去创建对象,在括号里分别传入,我们的学号,姓名,性别的值。stu1,stu2,stu3是这个三个对象的名字。如果我们想要访问他们的具体属性和具体行为,我们可以通过对象名.成员变量和对象名.成员方法。


public class Test {
    public static void main(String[] args) {
        Student stu1 = new Student(101, "张三", true);
        Student stu2 = new Student(102, "李四", false);
        Student stu3 = new Student(103, "王五", true);
        System.out.println(stu1.id);//101
        System.out.println(stu2.name);//李四
        System.out.println(stu3.gender);//true
        stu1.study();//张三学习ing
        stu2.sleep();//李四休息ing
    }
}

通过这种表达格式,我们得到学生stu1的id是101,stu2的名字是李四,stu3是男生的信息。


今天只是初步讲述面向对象思想和初步实现,后续会深入讲解和图解原理。


相关文章
|
10天前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
159 0
|
2月前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
269 3
|
7天前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
54 1
|
27天前
|
前端开发 Java 数据库连接
帮助新手快速上手的 JAVA 学习路线最详细版涵盖从入门到进阶的 JAVA 学习路线
本Java学习路线涵盖从基础语法、面向对象、异常处理到高级框架、微服务、JVM调优等内容,适合新手入门到进阶,助力掌握企业级开发技能,快速成为合格Java开发者。
291 3
|
2月前
|
NoSQL Java 关系型数据库
Java 从入门到进阶完整学习路线图规划与实战开发最佳实践指南
本文为Java开发者提供从入门到进阶的完整学习路线图,涵盖基础语法、面向对象、数据结构与算法、并发编程、JVM调优、主流框架(如Spring Boot)、数据库操作(MySQL、Redis)、微服务架构及云原生开发等内容,并结合实战案例与最佳实践,助力高效掌握Java核心技术。
221 0
|
2月前
|
Java 测试技术 API
Java IO流(二):文件操作与NIO入门
本文详解Java NIO与传统IO的区别与优势,涵盖Path、Files类、Channel、Buffer、Selector等核心概念,深入讲解文件操作、目录遍历、NIO实战及性能优化技巧,适合处理大文件与高并发场景,助力高效IO编程与面试准备。
|
2月前
|
Java 编译器 API
Java Lambda表达式与函数式编程入门
Lambda表达式是Java 8引入的重要特性,简化了函数式编程的实现方式。它通过简洁的语法替代传统的匿名内部类,使代码更清晰、易读。本文深入讲解Lambda表达式的基本语法、函数式接口、方法引用等核心概念,并结合集合操作、线程处理、事件回调等实战案例,帮助开发者掌握现代Java编程技巧。同时,还解析了面试中高频出现的相关问题,助你深入理解其原理与应用场景。
|
18天前
|
存储 Java 关系型数据库
Java 项目实战基于面向对象思想的汽车租赁系统开发实例 汽车租赁系统 Java 面向对象项目实战
本文介绍基于Java面向对象编程的汽车租赁系统技术方案与应用实例,涵盖系统功能需求分析、类设计、数据库设计及具体代码实现,帮助开发者掌握Java在实际项目中的应用。
39 0
|
18天前
|
Java API 数据库
2025 年最新 Java 实操学习路线,从入门到高级应用详细指南
2025年Java最新实操学习路线,涵盖从环境搭建到微服务、容器化部署的全流程实战内容,助你掌握Java 21核心特性、Spring Boot 3.2开发、云原生与微服务架构,提升企业级项目开发能力,适合从入门到高级应用的学习需求。
265 0
|
28天前
|
监控 Java API
2025 年全新出炉的 Java 学习路线:从入门起步到实操精通的详细指南
2025年Java学习路线与实操指南,涵盖Java 21核心特性、虚拟线程、Spring Boot 3、微服务、Spring Security、容器化部署等前沿技术,助你从入门到企业级开发进阶。
224 0