JAVA封装性

1、封装性的概念
(1)封装性是面向对象思想的三大特征之一
(2)封装就是隐藏实现细节,仅对外提供访问接口。
(3)属性的封装、方法的封装、类的封装、组件的封装、模块化的封装、系统级封装。
2、封装的好处
1、模块化
2、信息隐藏
3、代码重用
4、插件化易于调试
5、具有安全性
3、封装缺点
1、会影响执行效率
4、成员变量与局部变量
(1)在类中的位置不同
成员变量:在类中定义
局部变量:在方法中定义或者方法的参数
(2)在内存中的位置不同
成员变量:在堆内存(成员变量属于对象,对象进堆内存)
局部变量:在栈内存(局部变量属于方法,方法进栈内存)
(3)生命周期不同
成员变量:随着对象的创建而存在,随着对象的销毁而消失。
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失。
(4)初始化不同
成员变量:有默认的初始化值,引用类型默认为null。
局部变量:没有默认的初始化值,必须定义,赋值。然后才能使用。
注意:
局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用就近原则。

	class person{
	private String name; //成员变量在类中定义
	private  int age;//成员变量,在类中定义
	}
	public void run(int len){//参数也是局部变量
	int m= len; //m也是局部变量,局部变量定义在方法中!
	}

构造方法
1、构造方法就是类构造对象时调用的方法,用于对象的初始化工作。
2、构造方法是实例化一个类的对象时,也就是new的时候,最先调用的方法。
构造方法的定义:
构造方法是在类中定义的,构造方法的定义格式:方法名与类名相同,无返回值类型的声明。【不写void】
Dog do个= New Dog(),带括号表示调用了方法,此时调用的方法就是构造方法。

main{
Dog dog = new Dog()
}
class  Dog{
public Dog(){
System.out.println("构造方法执行了")
}

构造方法重载
无参构造方法:
public Dog(){}
带一个参数的构造方法:
public Dog(String name){
this.name= name;
}
带两个参数的构造方法:
public Dog(String name,int age){
this.name=name;
this.age=age;
}
注意:
一个类中,包含构造方法的重载【包含多个构造方法,无参、一个参数、两个参数等】
如果在类中需要相互调用:例如两个参数的构造方法需要调用一个参数的构造方法:

public Dog(String name,int age){
//表示调用自己的 带一个参数的构造方法【语法要求,必须在第一行】
	this(name);
	//this.name=name;
	this.age=age;
}

构造方法总结:
(1)构造方法名与类名相同,没有返回值声明(无 void)
(2)构造方法用于初始化数据(属性)
(3)每一个类中都有一个默认的无参构造方法
(4)如果类中有显示的构造方法,那么默认的构造方法无效
(5)如果类中有显示的构造方法,还想保留默认的构造方法,需要显示的写出来。
(6)构造方法可以有多个,但是参数不一样,成为构造方法的重载
(7)在构造方法中调用另一个构造方法,使用this(……),该句代码必须是第一句。
(8)构造方法之间的调用,必须有出口
(9)给对象初始化数据可以使用构造方法或setter方法,通常,两种方法都会保留。
(10)一个好的编写习惯是要保留默认的构造方法,[为了方便一些框架代码使用反射来创建对象]

this关键字
This关键字是一个很重要的概念,使用this关键字可以完成已下的操作。
调用类中的属性
public void setName(String name){
this.name = name;
}
调用类中的方法或者构造方法
表示当前对象:在方法被调用的时候,哪个对象调用了方法,在方法内的this就表示那个对象
main(){
Dog dog = new Dog();
dog.setName(“旺财”);
}

class Dog{
        private String name;
	    public void setName(String name){
		this.name = name;
		// this.name === dog.name,setName 被main方法中的dog调用了,所有this代表对象dog
	}
}
public void eat(){
	// 在方法中使用this调用类中的其他方法,this可以省略
	System.out.println("我是"+this.getName)
}

Static关键字
作用
(1)使用static关键字修饰一个属性
声明为static的变量实质上就是全局变量。
(2)使用Static关键字修饰一个方法
通常,在一个类中定义一个方法为Static,那就是说,无需本类中的对象即可调用此方法。
(3)使用Static关键字修饰一个类(内部类)
特点
(1)静态变量或方法不属于对象,依赖于类
(2)静态变量是全局变量,生命周期从类被加载后一直到程序结束。
(3)静态变量只存储一份,在静态方法区中存储
(4)静态变量是本类中所有对象共享一份。
(5)不建议使用对象名调用静态变量,建议使用类名调用静态数据。
(6)Static修饰一个方法,那么该方法属于类,不属于对象,直接使用类名调用。
声明为Static的方法有以下几条限制
他们仅能调用其他的Static的方法
他们只能访问Static数据
他们不能以任何方式引用this(表示当前类)或Supper(表示父类)

所有对象共同的属性或方法,那么我们可以定义为Static

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值