一.类与对象

1.面向对象简介

面向对象是以组件化的形式进行设计开发的,这样开发最大的好处就是重用。 (组件化:举个例子 就是把一个复杂的项目 拆开分成一个个小功能然后进行组合)

面向对象的特征

  • 封装性:用来保护内部的结构
  • 继承性:在原用的功能上增加新的特性
  • 多态性:某一个概念范围的满足
面向对象开发的步骤:(OOA)面向对象分析,(OOD)面向对象设计,(OOP)面向对象编程

2.类与对象简介

类是对面的抽象,对象是类的实例
万物皆对象

类是现实事物或虚拟事物的一个模板,对象这是通过这些模板实例出来的具体事物。

比如说狗可以定义为狗类然后再定义狗类的属性方法,比如名字属性、毛发颜色属性,跑的方法。而对象可以实例出名字小黄,毛发颜色为棕色。则方法就是一条棕色的狗小黄,它在路上跑

3.类与对象的定义及使用

类下面的属性和方法
属性:事物的特点
方法:行为动作

定义类的语法:

public class Dog{	//定义一个类
	//属性
	public String name;		//名字
	public String color;		//颜色
	
	//方法
	public void show(){
		System.out.println("一条名叫"+this.name+"的狗,颜色是"+this.color);	
	}
}

定义对象关键字new,通过new来定义一个对象从而使用对象。

Dog dog = new Dog();
dog.name = "大黄";		//给name属性赋予内容
dog.color = "棕色";		//给color属性赋予内容
dog.show();


输出结果:一条名叫大黄的狗,颜色是棕色

上面就是一个完整的类与对象的定义和使用

4.对象内存和引用分析

定义一个类不会存储在内存空间里面

栈内存空间:保存对象指向的地址
堆内存空间:用来存储new对象之后的属性。
如图:
在这里插入图片描述
如上图,当new了一个对象,就会开辟一个内存空间把地址存储在栈内存,把属性信息存储在堆内存,然后通过地址去调用对象里面的属性,如下图。
在这里插入图片描述
如果定义一个对象没有new,也会开辟一个内存空间用来存储地址,不过这个地址存储在栈内存只不过没有指向堆内存。
在这里插入图片描述

可以一个定义对象就可以定义两个对象,不过占用的内存空间也是两份
在这里插入图片描述

5.引用与垃圾产生分析

在堆内存中没有被栈内存引用的为垃圾内存,会被GC(Garbage Collector垃圾收集器)不定时的回收或释放这些无用空间。
例子:

public class Holle{

	public void static main(String[] agse){
		Dog doga = new Dog();
		doga.name = "大黄";		
		doga.color = "棕色";	
		Dog dogb = new Dog();
		dogb.name = "大黑";		
		dogb.color = "黑色";	

		dogb = bog1;
	}
}

在这里插入图片描述
在这里插入图片描述
当dogb=doga,不会开辟一个内存空间只会去引用doga的堆内存空间,当dogb更改了属性,doga会拿到更改后的属性,因为doga和dogb都是指向同一个堆内存空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值