类和对象以及构造方法

类和对象以及构造方法

什么是类

类是对现实生活最后一类具有共同属性和行为的事物的抽象;
类的特点:
类是对象的数据类型;
类是具有相同属性和行为的一组对象的集合;

什么是对象

客观存在的事物都是对象;

什么是对象的属性

属性: 对象具有的各种特征,每个对象的每个属性都有特定的值;

什么是对象的行为

行为: 对象能够执行的操作;

类和对象的关系

类: 类是对现实生活最后一类具有共同属性和行为的事物的抽象;
对象: 是能够看得见摸得着的真实存在的实体;

类的定义

类的重要性: 是java程序的组成单位;

类的组成

类的组成: 属性行为
属性: 在类中通过成员变量来体现(类中方法外的变量)
行为: 在类中通过成员方法来体现(和main方法相比去掉static关键字)

类的定义步骤

(1)编写类
(2)编写类的成员变量;
成员变量:类中方法外的变量就是成员变量;
(3)编写类的成员方法
类的定义过程

对象的使用

创建对象

格式: 类名 对象名 = new 类名();
范例: Phone p = new Phone();

使用对象

使用成员变量: 对象名.变量名;
范例: p.brand;
使用成员方法: 对象名.方法名();
范例: p.call();
对象的使用

this关键字

this: 表示当前类的对象;在普通的方法中,this总是指向调用该方法的对象;
在构造方法中,this总是指向正要初始化的对象;
可以使用this调用重载的构造方法,但是必须位于构造方法的第一句代码;;
this不能用在static方法;
this可以在方法内部获取对象的属性信息
this可以区分局部变量和成员变量;

构造方法

构造方法是一种特殊的方法,``
执行时机: new创建对象的时候,自动调用;
功能: 主要完成对象数据的初始化;
格式: public 类名() {}
构造方法
当main方法执行到Student()时,构造方法里面输出了"无参构造方法",并且创建了对象stu;
在这里插入图片描述

构造方法的注意事项

(1)构造方法的创建
如果没有定义构造方法,系统将给出一个默认无参数的构造方法;
如果定义了构造方法,系统将不再给出默认的构造方法;
(2)构造方法的重载
如果自定义了构造方法,还要使用无参数的构造方法,就必须要写一个无参数构造方法;
(3)推荐的代码风格
无论是否使用无参构造方法,都要手工书写无参构造方法;
(4)构造方法有返回值,但不能定义返回值类型,不能在构造方法里面return一个返回值;
(5)

(构造)方法重载

同一个类中具有多个方法名相同但是参数不同的方法,就是方法重载;
重载的不同方法:
改变参数的个数;
改变参数的数据类型;
注意:方法的重载和返回值类型无关;

标准类的写法

成员变量

使用private修饰;

构造方法

提供一个无参构造方法
提供一个带参数的构造方法;

成员方法

提供每一个成员变量对应的setXxx()/getXxx()方法;
提供一个显示对象信息的show()方法;

创建对象并为其成员变量赋值的两种方式

无参构造方法创建对象后使用**setXxx()**赋值;
参构造方法直接创建带有属性值的对象;
标准类
在这里插入图片描述

创建对象内存分析

栈:JVM中一块很小的内存,
特点: 存储基本数据类型变量和引用数据类型的引用;

堆:
特点: 存储的是类中的对象或者数组;
方法区:

默认的构造方法创建对象的三个步骤:
Person p = new Preson();
1.new的时候在堆中申请一块内存空间,假设这个空间的地址为0x111111,这时系统会给成员变量一个默认的初始值null或者0;
2.执行这个构造方法;
3.返回堆中对象的地址给栈中相关的变量;;即p指向这个地址值0x111111; p = 0x111111;

带参的构造方法创建对象的四个步骤:
Person p = new Preson(“小明” , 18);
1.new的时候在堆申请一块内存空间,假设这块空间的地址是0x111,这时系统会给成员变量默认的初始值null或者0;
2.成员变量显式初始化;
(假设成员变量有String name;int age;这时 name = “小明”; age = 18;)
3.执行这个构造方法;
4,返回堆中对象的地址给栈中相关的变量;;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值