java类与对象

1.在面向对象中类和对象是最基本、最重要的组成单元.

:表示一个客观世界某类群体的一些基本特征的抽象,属于抽象概念的集合.

对象:表示一个个具体的事物,如李四、张三的汽车、芷若、可以使用的事物,就可以理解为对象,所以对象表示的是一个个独立的个体.

在现实生活中,人表示为一个类,因为人本身属于一种广义的概念,并不是一个具体的描述。而具体的人,如“芷若同学”,就可以称为对象。

属性:在对象(芷若)中,可以通过各种信息完整地描述这个具体的人,如这个人的姓名、年龄、性别等信息,那么这些信息在对象的概念中就成为属性.

方法:描述对象(芷若)时,她当然可以吃饭、睡觉、那么这些人的行为就在类中称为方法.

结论:如果要使用一个类,就一定有产生对象,“类是对象的模板,对象是类的实例”,每个对象之间是靠各个属性的不同来进行区分的,而每个对象所具备的操作就是类中规定好的方法.

2.类与对象的定义
从上面的概念中可以理解,类是由属性和方法组成的.属性中定义类一个个的具体信息,实际上一个属性就是一个变量,而方法是一些操作的行为。

属性也可以成为成员.
类中的属性实际上相当于一个个变量,有时候也称之为Field(成员).

class 类名称{
      数据类型  属性(变量);
      ......  //声明成员变量(属性)


    public  返回值的数据类型  方法名称(参数1,参数2...){
                程序语句;                                                  //定义方法的内容
                [return 表达式;]                                                    
                }
}

3.定义一个Person类,里面有两个属性:name和age,后面定义了一个tell()方法,可以输出这两个属性内容.

这里方法没有加static,这是因为没有在主类当中调用,如果在主方法直接调用方法必须加上static,我们这里的方法将会由对象调用,与之前的调用形式不同,所以暂时没有加上.

如果是对像调用的方法定义时不加static,如果不是由对象调用的方法才加static.
在这里插入图片描述
类定义完成之后,肯定是无法使用,如果要使用,必须依靠对象,那么由类属性引用的数据类型,所以对象产生格式如下.

如果不明白下面有代码讲解哦

格式一:声明并实例化对象.
类名称 对象名称 =new 类名称 ();

格式二:分步完成.
声明对象 类名称 对象名称=null;
实例化对象 对象名称=new 类名称();

4.因为类属性引用数据类型,所以只要是引用数据类型的实例化操作,永远都必须使用关键字new 进行空间分配后才可以使用.当实例化产生后,可以如下进行类的操作.

对象.属性:表示调用类之中的属性;
对象.方法():表示调用类之中的方法.

5.格式一 代码讲解,在Person类里面,声明实例化对象,使用对象操作类.
在这里插入图片描述
运行结果如下
在这里插入图片描述
6.格式二 代码讲解,在Person类里面,分布式完成.
在这里插入图片描述

7.给出两种不同实例方式有什么区别呢?
为了引入内存分析方便,首先给出两块内存空间
堆内存(真正数据(属性)):保存对象的真正数据,都是每一个对象的属性内容;
栈内存(地址(名字)):保存的是一块堆内存的空间地址,所以每一块栈内存只能够保留一块堆内存地址.简单理解将栈内存中保存的数据理解为对象的名称.

如果想要开辟堆空间,只能依靠关键字new来进行开辟,即只要看见关键字new,不管何种情况下,都表示要开辟新的堆内存空间.

注意:对象使用前必须首先进行实例化操作.

8.下面代码讲解
在这里插入图片描述
运行结果可以看出,使用了两种方式进行了对象的实例化操作,但是由于程序中出现了两次关键字new,所以会开辟两块不同的堆内存空间.

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值