封装、构造方法、构造代码块、方法重载

 一、封装的概念

在现实生活中,每个对象的属性或者方法,有些是可以向外展示的,有些是不可以向外展示的,比如,人的外貌、姓名、国籍等都可以向外展示,但是自己家里的事情就不可以告诉别人,再以笔记本为例,笔记本内部有cpu、主板、内存条、硬盘、网卡显卡声卡等并没有向外展示,而是封装在外壳内部,只提供给我们使用的接口功能,这就保证了电脑的安全性,因为我们使用者不一定都熟悉电脑,有时候一些误操作可能导致电脑损坏。程序也是如此,类中的某些属性和方法只提供给你使用,但是你不能随意更改,这样就保证了代码的健壮性。但是我们要提供给调用者一些访问的方法,然后设置访问的条件。

 

public class Computer {
	
	private String hardDisk;//硬盘
	private String mainboard;//主板
	
	public void use(){
		System.out.println("useing");
	}
	
	public String getHardDisk() {
		return hardDisk;
	}
	public void setHardDisk(String hardDisk) {
		this.hardDisk = hardDisk;
	}
	public String getMainboard() {
		return mainboard;
	}
	public void setMainboard(String mainboard) {
		this.mainboard = mainboard;
	}
	
	
}

  

关键字:private是一个关键字,它用来私有化成员变量,这样成员变量就只用在本类中能够访问到,其他类访问不到,只有通过调用提供的方法来访问,那么我们为了控制访问条件,就可以在提供的方法中设置一些条件进行限制。

注意:private私有化变量只是封装的一种。 

二、构造方法

1.上面提到了构造方法(函数),格式:方法名和类名相同,用了对对象进行初始化,因为类创建的对象存在共性,那么我们就可以在生成对象的同时给它的成员变量进行赋值初始化;

 

Person p=new Person("小明",19);
//这样new+构造函数创建了一个对象,并且给对象中成员变量赋值

注意:构造方法没有返回值

2.方法的重载:定义:当一个类中定义了多个方法,方法名相同,但是参数不同,参数个数不同或者类型不同,那么类产生的对象在调用方法时,会根据参数匹配情况自动选择,这就是重载;

3.如果类中没有构造方法,会默认添加一个空参数构造方法  

  方法名(){

  }

方法的重载举例如下:

 

class Person
{
 Person()
 {
 }
 Person(String name)
 {
  this.name=name;
 }
 Person(String name,int age)
 {
  this.name=name;
  this.age=age;
 }
}

注意:

1、如果创建的对象中,既有无参数的,也有有参数的,那么,在类中要把空参数构造方法写上,因为如果自己写了一个有参数构造方法,那么系统就不会在默认提供一个无参的构造方法了。

2、一些java规范:类名的首字母必须大写,方法和属性首字母小写,有多个单词组成的类名和方法需要使用驼峰结构,第二个单词首字母大写;

三、构造代码块与构造函数之间的调用

1.构造代码块:当对象一建立,构造代码块就运行了,它是用来给对象进行初始化的,它优先于对象执行。

格式:{   System.out.println("");

}

它与构造函数的区别是:它是用来给所有对象进行初始化的,所以里面的执行体,是所用对象共性的东西;而构造函数是给特定的对象进行初始化,它还要看参数,考虑到重载问题等等。

3.构造函数之间的调用通过this语句来完成:代码体现如下:

 

class Person
{
 Person()
 {
 }
 Person(String name)
 {
  this();//1
  this.name=name;//3
 }
 Person(String name,int age)
 {
  this(name);//2
  this.age=age;//4
 }
}

如果Person p=new Person("小明",19);,那么首先根据方法的重载,它会找到最后一个构造方法,然后执行2;到上一个构造方法中,然后有执行1;然后执行3,再执行4;

注意:构造方法之间调用时,this语句要出现在第一行,构造方法先执行,如果构造方法里还有构造方法,那么就执行更细节的构造方法。

 


 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值