java视频学习路径(java面向对象)java面向对象

1、实例化对象

1、在类中如果成员属性没有赋值,它是有默认值的。比如下面的代码

package com.imooc;

public class Cat {
	//成员属性
	String name;          //默认值为null
	int month;            //默认值为0
	double weight;        //默认值是0.0
	String species;       //默认值为null
	
}

2、单一职责原则:一个类中有且只有一个引起功能变化的原因

2、new关键字

1、对象的实例化可以分为两个过程:声明对象实例化对象

2、就比如说Cat one=new Cat();这段代码前面Cat one是在声明对象,后面new Cat是在实例化对象,但是这两个步骤是在内存中不同的地方实现的,声明对象是在栈中开辟一个名字为one空间,在没有实例化的时候,one里面的内容为null。实例化对象是在堆中分配了一段内存。如下图所示:

3、当我们使用赋值符号将声明对象和实例化对象一关联后,那么上图中堆的内存地址0x0001就放在了one中,这时one里的内容就不在是null,而是堆中的地址。可以很形象的把堆中的空间比作房子,堆中空间的地址就是钥匙,钥匙放在了栈中one的手里,那么one是不是想去堆里拿什么就很随意了。

4、所以这样看来new的作用就是在堆中开辟新的内存空间。那么假如代码是这样:

Cat two=one

那么就意味着我们one把钥匙给了two一份,所以两个对象在堆中使用的同一段内存,两个对象的修改都会对堆中的内容产生修改,简单的来说,就是堆中的一套房子的钥匙在栈中被两个对象所拥有

3、构造方法

1、构造方法的方法名和类名一样构造方法没有返回类型的。只有访问修饰符。可以有参数可以没有参数

2、构造方法只能在对象被实例化的时候调用。所以构造方法是new的好伙伴。

3、构造方法没有显示的指定,系统会自动添加无参的构造方法

4、this关键字

1、this表示当前对象,比如说this.run();这个this代表的就是调用run的主体对象,谁在调用run,这个this就代表的谁。

5、构造方法的调用

1、构造方法是不能够直接被类内普通成员函数所调用的

2、构造方法的调用只能在构造函数之间完成

3、可以使用this()这样的代码去在带参构造函数中去使用无参构造。且这句话要放在带参构造的第一行。比如下面的代码

public Cat() {
	System.out.println("no parameter constructor");
}
public Cat(String name) {
	this();  //在有参构造函数中调用了无参构造函数
	this.name=name;
	System.out.println("parameter constructor");
};

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值