类与对象的理解:
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中最小的封装体就是函数。类是封装体。框架是封装体。
封装是指隐藏对象的属性和实际细节,仅对外提供公共访问方式。
好处:将变化隔离,便于使用,提高重要性和安全性。
封装原则:将不需要对外提供的内容都隐藏起来
把属性隐藏,提供公共方法对其访问
构造函数:构造创建对象时调用的函数。 可以对对象进行初始化。
创建对象都必须通过构造函数初始化。
一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造器。
如果类中定义指定的构造函数,那么类中的默认构造函数就没有了。
一般函数和构造函数的区别?
构造函数:对象创建时,就会调用与之对应的构造函数,对对象进行初始化。
一般函数:对象创建后,需要函数功能是才能调用。
构造函数:对象创建时,会调用只调用一次。
一般函数:对象创建后,可以被调用多次。
构造函数的重载:函数的参数类型 个数 和顺序都不同。(每个重载的方法都必须有一个独一无二的参数类型列表)