面向对象-1封装

来源:互联网 发布:rip的udp端口号是 编辑:程序博客网 时间:2024/05/19 11:18

类与对象的理解:

new来创建的。


成员变量与局部变量的区别:



栈内存中有的值就不用去堆内存中找:(c.num=10而不是4)


类类型参数:


除了7种基本数据类型还有3种引用数据类型:数组,类,借口。如图:


匿名对象:没有名字的对象

new car();//匿名对象,其实就是定义对象的简写格式。

匿名对象:

1,当对象对方法仅进行一次调用的时候,就可以简化成匿名对象。如下图


匿名对象的内存图:(当对属性赋值的时候没有意义,因为刚开辟空间赋值之后就没用了,因为没有引用地址所指向,但是方法就不一样了,调用了一次就执行了一次方法)


2,匿名对象可以作为实际参数进行传递。

Car c1 = new Car();

// show(c1);

show(new Car());(show是一个接受类类型的方法)


引用数据类型参数传递图解:



封装:

一般成员变量都定义成私有的,对外提供公共访问方式,因为可以控制(不让其他类随便改变自己的变量值,这就是封装意识,提高安全性)

setName和getName已经成为固定模式。


private:

是一个权限修饰符,权限最小,只能修饰成员(不能修饰局部)

私有的内容只在本类中有效。


一般不对外使用的,都隐藏起来,只要是类中的成员不对外提供,都可以隐藏起来。


注意:私有仅仅是封装的一种体现而已

 封装是私有呗?不是。不私有可能封装。

在java中最小的封装体就是函数。类是封装体。框架是封装体。


封装是指隐藏对象的属性和实际细节,仅对外提供公共访问方式。

好处:将变化隔离,便于使用,提高重要性和安全性。

封装原则:将不需要对外提供的内容都隐藏起来

         把属性隐藏,提供公共方法对其访问

构造函数:构造创建对象时调用的函数。 可以对对象进行初始化。


创建对象都必须通过构造函数初始化。

一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造器。

如果类中定义指定的构造函数,那么类中的默认构造函数就没有了。


一般函数和构造函数的区别?

构造函数:对象创建时,就会调用与之对应的构造函数,对对象进行初始化。

一般函数:对象创建后,需要函数功能是才能调用。


构造函数:对象创建时,会调用只调用一次。

一般函数:对象创建后,可以被调用多次。


构造函数的重载:函数的参数类型 个数 和顺序都不同。(每个重载的方法都必须有一个独一无二的参数类型列表)









原创粉丝点击