还不懂什么叫面向对象?手把手带你充分入门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是男生的信息。


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


相关文章
|
18天前
|
自然语言处理 Java
Java中的字符集编码入门-增补字符(转载)
本文探讨Java对Unicode的支持及其发展历程。文章详细解析了Unicode字符集的结构,包括基本多语言面(BMP)和增补字符的表示方法,以及UTF-16编码中surrogate pair的使用。同时介绍了代码点和代码单元的概念,并解释了UTF-8的编码规则及其兼容性。
89 60
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
75 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
1月前
|
监控 架构师 Java
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
|
1月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
30 1
|
2月前
|
JavaScript 前端开发 Java
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。如果你从我的文章中受益,欢迎关注我,我将持续更新更多优质内容。你的支持是我前进的动力!🎉🎉🎉
29 0
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
|
2月前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
2月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 安全 Java
🌟Java零基础-反序列化:从入门到精通
【10月更文挑战第21天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
104 5
|
2月前
|
安全 Java 调度
Java中的多线程编程入门
【10月更文挑战第29天】在Java的世界中,多线程就像是一场精心编排的交响乐。每个线程都是乐团中的一个乐手,他们各自演奏着自己的部分,却又和谐地共同完成整场演出。本文将带你走进Java多线程的世界,让你从零基础到能够编写基本的多线程程序。
40 1
|
2月前
|
Java 程序员 数据库连接
Java中的异常处理:从入门到精通
在Java编程的海洋中,异常处理是一艘不可或缺的救生艇。它不仅保护你的代码免受错误数据的侵袭,还能确保用户体验的平稳航行。本文将带你领略异常处理的风浪,让你学会如何在Java中捕捉、处理和预防异常,从而成为一名真正的Java航海家。