iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java类和对象原理的示例分析
  • 780
分享到

Java类和对象原理的示例分析

2023-06-29 12:06:57 780人浏览 薄情痞子
摘要

小编给大家分享一下Java类和对象原理的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!面向对象、面向过程什么是类?什么是对象?这是非常抽象的两个概念!!!!!!!!在说清楚类和对象的概念之前,给大家讲一下什么是面向

小编给大家分享一下Java类和对象原理的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

面向对象、面向过程

什么是类?

什么是对象?

这是非常抽象的两个概念!!!!!!!!

在说清楚类和对象的概念之前,给大家讲一下什么是面向对象、面向过程,以此来推出我们类和对象的概念。

面向过程:以洗衣服为例:拿盆、放水、放衣服、放洗衣粉、手搓、换水、拧干、晾衣服,这个过程就是面向过程。 

面向对象:以洗衣服为例:人把衣服放进洗衣机,倒入洗衣粉,洗完晾干,不需要关心洗衣服整个过程是怎么完成的,只需要找对象,创建对象,使用对象。在好比我们使用toString函数,我们并不关心toString函数具体的实现过程,我们直接交给Arrays帮我们实现就可以了,这就是面向对象。

对象从哪来的?对象就是从类来的,有类之后才有对象,人,洗衣机 ,洗衣粉,都是单独的一个类。由类再产生对象,我们就叫做创建对象。对象都创建好了,每个对象都具备一些行为一些属性,然后对象之间相互完成就可以了。这就是面向对象和面向过程。

要面向对象,我们就要找到对象,而对象是由类来的,类是从哪来的?我们是需要去抽象的。比如说:我们都是人,人的话都有共同的属性,姓名、性别、年龄、吃饭、睡觉,每个人都会具备这些,相当于这就是一个模板,通过这个模板可以产生很多的对象,这些对象都具备这些相同的属性。就是来抽象这个人,由这个人来创建对象,而这个人就是一个类。真正的要有这样一个人,让他是一个对象,是一个实体,就需要把他创建出来,通过new来创建。

定义类

class Person{     }//定义一个类,这个类叫Person,类名一定要是大驼峰     class Person{    //类里面包含字段,也叫做属性,也叫做成员变量    //也包含方法    //一个类就是由方法和字段组成的    public String name;//属性    public int age;//属性    //什么是方法?可以解读为这个人的行为    public void eat(){        System.out.println(name+" 正在吃饭");    }    public void sleep(){        System.out.println(name+" 正在睡觉");    } }

由类产生对象的过程,术语我们叫做实例化,通过new关键字来实例化对象。

public class TestDemo {    public static void main(String[] args) {        Person person//定义一个变量person,此时类Person也相当于类型的意思,和int a = 10,a的类型是int一样     }}

由类Person定义的变量person是引用变量,意味着它的初值可以给null

public class TestDemo {    public static void main(String[] args) {        Person person = null;     }}

实例化对象

public class TestDemo {    public static void main(String[] args) {        Person person = new Person();//由类Person实例化了一个对象     }}

一个类可以实例化多个对象

public class TestDemo {    public static void main(String[] args) {        Person person = new Person();//由类Person实例化了一个对象        Person person1 = new Person();        Person person2 = new Person();        Person person3 = new Person();        Person person4 = new Person();     }}

类的成员

普通成员变量

字段是定义在类的内部方法的外部,如果定义到方法里头叫做局部变量,定义到方法外头叫做成员变量 

 如何访问成员变量,成员变量分为两种:(普通成员变量、静态成员变量)。普通的成员变量的访问方式通过引用来访问。

Java类和对象原理的示例分析

成员变量没有赋初值的情况下都有一个默认的值

 如何给成员变量赋值

Java类和对象原理的示例分析

如果是一个普通的成员变量,它的内存在对象里面,而不是说所有对象共用一份。每个对象都各有一份自己的name和age

Java类和对象原理的示例分析

Java类和对象原理的示例分析

方法也分为两种:一种叫做普通成员方法,一种叫做静态成员方法

普通的成员方法访问方式也是一样的,通过对象的引用来访问我的方法。

Java类和对象原理的示例分析

静态成员变量

被static修饰的的变量叫静态成员变量,也叫做类变量,是放在方法区的

静态成员变量的访问方式是通过类名.静态的成员属性/方法。

不依赖对象

class Person{     public String name;    public int age;     public static int count;     public void eat(){        System.out.println(name+" 正在吃饭");    }    public void sleep(){        System.out.println(name+" 正在睡觉");    } } public class TestDemo {    public static void main(String[] args) {        Person.count++;        System.out.println(Person.count);        System.out.println("================");        Person.count++;        System.out.println(Person.count);     }}

打印结果;

Java类和对象原理的示例分析

count是被static修饰的静态成员变量,是放在方法区的,不属于某个对象,属于类。正确的访问静态成员变量或者方法只要  类名.静态成员变量/方法    就可以了,所有静态的东西在方法区里只存一份,所以加2遍都是加的count本身,所以第二次打印的结果是2。

普通的方法内部不能够定义静态的变量

Java类和对象原理的示例分析

static定义的变量是类变量,属于类,(定义在方法内部就属于方法了,所以是错误的)

eat方法的调用,需要对应的引用来调用。但如果可以定义static的变量,类Person就可以调用,所以两者直接是矛盾的,eat需要对应的引用来调用。size只需要类就可以调用。所以普通的方法内部, 不能够定义静态的变量。

静态的方法也不可以定义静态变量

Java类和对象原理的示例分析

static定义的变量是类变量,属于类,(定义在方法内部就属于方法了,这样是做不到的,所以是错误的)

总结:静态的成员变量是不可以在方法中定义的 

普通方法里面是可以调用静态方法的

class Person{     public String name;    public int age;     public static int count;     public void eat(){         System.out.println(name+" 正在吃饭");    }    public void sleep(){        staticFunc();        System.out.println(name+" 正在睡觉");    }    public static void staticFunc(){        System.out.println("static::func");    } } public class TestDemo {    public static void main(String[] args) {        Person person = new Person();         person.eat();         person.sleep();    }}

 打印结果:

Java类和对象原理的示例分析

 静态方法内部不能调用普通方法

Java类和对象原理的示例分析

 静态内部不可以调用普通方法,因为静态的方法不依赖于对象, 通过类名就可以调用,但没有对象普通方法没法调用。

main函数为什么是静态的

Java类和对象原理的示例分析

 一个引用不可以同时指向多个对象

Java类和对象原理的示例分析

引用肯定是在栈上吗?肯定不是

Java类和对象原理的示例分析

 看绿线,画图解析

Java类和对象原理的示例分析

小写的person属于TestDemo这个类的成员变量 

final修饰

Java类和对象原理的示例分析

private实现封装

private/ public 这两个关键字表示 "访问权限控制"

被 public 修饰的成员变量或者成员方法, 可以直接被类的调用者使用.

被 private 修饰的成员变量或者成员方法, 不能被类的调用者使用.

Java类和对象原理的示例分析

提供接口

Java类和对象原理的示例分析

Java类和对象原理的示例分析

 打印结果:

Java类和对象原理的示例分析

this代表当前对象的引用

Java类和对象原理的示例分析

构造方法

构造方法:方法名和类名是相同的,且构造方法比较特殊,没有返回值

构造方法是干嘛的?我们需要知道一个对象的产生(对象的实例化) 分为几步

为对象分配内存

调用合适的构造方法

Java类和对象原理的示例分析

Java类和对象原理的示例分析

这就是一个构造方法

前面的访问修饰符可以是public,

Java类和对象原理的示例分析

 调用构造方法:

Java类和对象原理的示例分析

打印结果:

Java类和对象原理的示例分析

Java类和对象原理的示例分析

不带参数和带一个参数和带两个参数的构造方法

Java类和对象原理的示例分析

 调用构造方法:

Java类和对象原理的示例分析

Java类和对象原理的示例分析

this的区别

Java类和对象原理的示例分析

第一种:

Java类和对象原理的示例分析

 第二种:

Java类和对象原理的示例分析

代表当前对象的eat方法

 第三种:

调用不带参数的构造方法,

Java类和对象原理的示例分析

Java类和对象原理的示例分析

 打印结果 :

Java类和对象原理的示例分析

this函数必须放到第一行,只能存放在构造函数当中

Java类和对象原理的示例分析

代码块

Java类和对象原理的示例分析

本地代码块:

两个括号

Java类和对象原理的示例分析

 实例代码块和静态代码块:

Java类和对象原理的示例分析

静态代码块不管生成多少个对象,其只会执行一次,且是最先执行的。 静态代码块执行完毕后, 实例代码块(构造块)执行,再然后是构造函数执行。 

看完了这篇文章,相信你对“Java类和对象原理的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: Java类和对象原理的示例分析

本文链接: https://www.lsjlt.com/news/324794.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Java类和对象原理的示例分析
    小编给大家分享一下Java类和对象原理的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!面向对象、面向过程什么是类?什么是对象?这是非常抽象的两个概念!!!!!!!!在说清楚类和对象的概念之前,给大家讲一下什么是面向...
    99+
    2023-06-29
  • Java类和对象的示例分析
    这篇文章给大家分享的是有关Java类和对象的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、什么是类类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实...
    99+
    2023-06-29
  • Java中类和对象的示例分析
    这篇文章主要介绍了Java中类和对象的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类可以看成是创建Java对象的模板1、类的定义public class&...
    99+
    2023-06-25
  • Python类和对象的示例分析
    这篇文章给大家分享的是有关Python类和对象的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、面向对象(一)程序员“面向对象”在现实世界中存在各种不同形态的事物,这些事物之间存在着各种各样的联系。在程...
    99+
    2023-06-29
  • VB.NET对象原理的示例分析
    这篇文章主要介绍了VB.NET对象原理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在网上收集了一些资料现在和大家一起讨论一下,我们都知道VB.NET对象是在***...
    99+
    2023-06-17
  • Java中类与对象的示例分析
    这篇文章主要介绍Java中类与对象的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!类和对象在面向对象中,类和对象是最基本、最重要的组成单元。类实际上是表示一个客观世界某类群体的一些基本特征抽象。对象就是表示一...
    99+
    2023-06-20
  • Python面向对象中类和对象的示例分析
    这篇文章主要介绍了Python面向对象中类和对象的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是面向对象编程?我们是不是听过面向过程,拿来放在一起对比就比较好理...
    99+
    2023-06-22
  • Java类和对象初始化过程的示例分析
    这篇文章主要介绍了Java类和对象初始化过程的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  问题引入  近日我在调试一个枚举类型的解析器程序,该解析器是将数据库内...
    99+
    2023-06-03
  • Python面向对象和类的示例分析
    这篇文章主要为大家展示了“Python面向对象和类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python面向对象和类的示例分析”这篇文章吧。一、两大编程思想二、类与对象简单举例:p...
    99+
    2023-06-26
  • C++类与对象的示例分析
    这篇文章主要介绍了C++类与对象的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类的引入在引入类之前,先来回忆一下C语言中的结构体。结构体是一种自定义类型,可以在其中...
    99+
    2023-06-29
  • Java对象复制的示例分析
    这篇文章主要介绍了Java对象复制的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、图示二、MapStructpom文件 <dependency>&nb...
    99+
    2023-06-15
  • C++中类与对象的示例分析
    这篇文章将为大家详细讲解有关C++中类与对象的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言:C 语言是面向过程的,关注的是过程,分析出求解的步骤,通过函数逐步调用解决问题。C++是基于面向对...
    99+
    2023-06-22
  • java面向对象的示例分析
    这篇文章主要介绍了java面向对象的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、Java特效1、简单性人们希望构建一个无须深奥的专业训练就可以进行编程的系统,并...
    99+
    2023-06-29
  • VB.NET类对象语法的示例分析
    这篇文章主要介绍了VB.NET类对象语法的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. VB.NET类类是具有相同属性和动作的事物的抽象,它是面向对象编程的最基...
    99+
    2023-06-17
  • Java中抽象类和接口的示例分析
    这篇文章主要介绍了Java中抽象类和接口的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、抽象类1.抽象类1.1抽象类的定义在Java面向对象当中,所有的对象都是用...
    99+
    2023-06-25
  • Java对象结构与对象锁的示例分析
    这篇文章主要介绍Java对象结构与对象锁的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. Java对象结构Java对象结构包括三部分:对象头、对象体和填充字节,如图所示:对象头又包括三个字段:第一个字段叫...
    99+
    2023-06-29
  • Java类和对象的设计原理
    目录一、实验目的二、实验代码1.定义一个类MyProgram,包含两个属性:2. 在Vehicle类的基础上创建一个Tractor(拖拉机)类3. 组合实现汽车类5. USB接口程序...
    99+
    2024-04-02
  • java中EnumSet抽象类的示例分析
    这篇文章主要为大家展示了“java中EnumSet抽象类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java中EnumSet抽象类的示例分析”这篇文章吧。EnumSetEnumSet...
    99+
    2023-05-30
    java enumset
  • Java中对象比较的示例分析
    这篇文章主要介绍了Java中对象比较的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。元素比较基本类型的比较在Java中,基本类型的对象可以直接比较大小public&n...
    99+
    2023-06-29
  • js对象和事件的示例分析
    这篇文章给大家分享的是有关js对象和事件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.内置对象1.1 String1.2Math1.3Date说明2.对象2.1 对象的创建JS创建自定义对象,主要通...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作