我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java类与对象超基础讲解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java类与对象超基础讲解

什么是面向对象

Java语言是一个纯面向对象的语言,面向对象的语言不仅只有Java,包括C++,PHP等

面向对象的编程思想简称 OOP(Object Oriented Programming),其基本特点就是封装,继承和多态。

面向过程与面向对象

想要弄清楚什么是面向对象,首先需要知道两者的区别

面向过程更注重程序的每一个步骤,用相应的函数来实现。

比如说,五子棋,面向过程就需要首先分析每一个步骤

1.实现游戏的开始

3.棋盘的搭建

4.玩家下棋,并打印新的棋盘

5.电脑下棋,并打印新的棋盘

6.判断输赢

7.返回并输出结果

对于面向对象来说,就需要找出相应的对象

1.电脑与玩家

2.棋盘

3.规则设置

这三条都属于对象,第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

将五子棋改成围棋,如果是面向过程的思想,就需要对多个步骤,函数进行修改和维护,而且面向过程,往往需要修改大量的代码,因为程序的每一个步骤都是相互联系的。而面向对象,仅仅只需要对对象进行维护,并且每一个对象之间独立性较强

所以相对于面向过程,面向对象有更好的维护,复用,和扩展功能

而我们的面向对象,只需要关注寻找对象,构建对象,使用对象这三点,关键是抽象出类出来

类与对象的使用

语法:

Java中的类是通过class关键字来定义的,其语法格式如下:

[修饰符] class 类名 [extends 父类名] [implements 接口名]{undefined

// 类体

}

这里的extends和implements为可选项,类体包括成员变量(又称为字段和属性)和成员方法

class后面的类名采用大驼峰

成员变量定义在类当中,方法的外面

类相当一个模板,根据这个模板,可以创造很多的对象,类是对象的抽象归纳,这里的类也可以看作是一种自定义类型

下面定义一个Person类,由名字年龄构成,成员方法为人的吃饭,睡觉等行为

class Person{
    public String name;
    public int age;
    public void eat(){
        System.out.println("吃饭");
    }
    public void sleep(){
        System.out.println("睡觉");
    }
}

在使用这个类,必须先实例化一个对象,有类才有对象

对目标进行访问,首先这个目标肯定是一个实体,只有拥有一个实例化对象,才能对对象进行访问和修改,就相当于类只是一个图纸,只有做成一个物理模型,才能对这个模型进行修改。

那对象具体怎样创建呢?这个时候就需要用过new关键字去构建一个对象

Person per=new Person();

既然Person是一种自定义类型,那上述代码,前面就是类型,后面就是变量

这里的per是一个引用变量,存放的是对象的地址,这个引用指向的就是这个对象

类与对象的使用与说明

1.类是一种自定义类型,可以用来定义变量,在java中由类定义出来的变量我们称为成员变量

2.一个类可以定义多个变量,实例出来的对象会占用实际的物理空间,存储类成员变量

3.类实例化就相当于,生活中构建房子,类只是一个设计图,只设计出需要什么,但是无真是的建筑存在,只有真正实例化一个对象,才会分配储存数据,占用物理空间。

4.只有使用new关键字,才能实例化一个对象,才会分配一块内存

对象的初始化

当成功创建一个对象后,需要对该对象进行初始化

java中对对象进行初始化,需要使用 “.”操作符

如果不对对象进行初始化的话,默认该变量中的成员变量初值为对应相应的零值

public class classDemo {
    public static void main(String[] args) {
        //实例化一个对象
        Person per1=new Person();
        //对per1对象进行初始化
        per1.age=20;
        per1.name="zhangsan";
        per1.eat();
        per1.sleep();
        Person per2=new Person();
        //对per2对象进行初始化
        per2.age=30;
        per2.name="lisi";
        per2.eat();
        per2.sleep();
    }
}

this的使用

1.this可以代表当前对象的引用

2.可以避免成员方法参数与成员名称冲突,将成员变量与其他参数区别开

this.data//访问成员变量

this.fun();//访问成员方法

this();//调用构造方法,具体看下文构造方法

//定义一个日期的类
public class MyDate {
 
    public int year;
    public int month;
    public int day;
 
    
    public void setDate(int year,int month,int day) {
        this.year = year;
        this.month = month ;
        this.day = day;
        //如果不区分,就可能出现
        //year = year;
        //month = month ;
        //day = day;
 
    }
 
    public void printDate() {
        System.out.println("年:"+this.year+"月:"+this.month+"日:"+this.day);
    }
 
 
    public static void main(String[] args) {
 
        // this.printDate();
 
        MyDate myDate = new MyDate();
 
        myDate.setDate(2022,3,25);
 
        myDate.printDate();
 
    }
}

构造方法

代码:Person per=new Person();

你是否有疑惑为什么最后一个Person后面会跟一个括号

其实一个括号代表的是调用一个无参数的构造方法,当你编写的程序中,没有构造方法,系统其实就调用隐藏的无参数的构造方法,只不过这个构建函数无实际作用。如果程序存在构造方法,那系统就不会默认生成无参数的构造方法

什么是构造方法?构造方法与普通的成员方法有什么不同?

1.构造参数没有返回值,即使void也不行

2.构造方法中的方法名与该类的名字相同

构造方法仍然支持方法重载,调用哪一个方法,由参数列表决定

this可以调用本类的构造方法

   public Student() {
        //调用本类中   带有2个参数的构造方法,第一个参数的类型是String,第2个参数的类型是int
        this("gaobo",18);
    }
 
    public Student(String name,int age) {
        this.age = age;
        this.name = name;
        System.out.println("这个是带2个参数的构造方法!");
    }

操作可行的前提是,要保证this语句在该方法中最前面的一行,注释除外

并且不能形成环(两个构造方法相互调用)

java类中支持快速打印出成员变量,不需要自己写一个show方法来进行打印

    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

toString方法,它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法,toString 方法会返回一个“以文本方式表示”此对象的字符串。

IDEA快速生成toString方法的快捷键:鼠标右键->generate->toString

到此这篇关于Java 类与对象超基础讲解的文章就介绍到这了,更多相关Java 类与对象内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java类与对象超基础讲解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

揭开 Java 类与对象的神秘面纱:理解对象导向的基础
2024-03-09

C++类与对象基础点有哪些

本文小编为大家详细介绍“C++类与对象基础点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++类与对象基础点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。认识类和对象C语言是面向过程的,关注的是过
2023-07-02

【Java 基础】类和对象 & 方法重载详解

《Java 零基础入门到精通》专栏持续更新中。通过本专栏你将学习到 Java 从入门到进阶再到实战的全套完整内容,所有内容均将集中于此专栏。无论是初学者还是有经验的开发人员,都可从本专栏获益。 订阅专栏后添加我微信或者进交流群,
2023-08-21

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录