1、类与对象?
类可以被认为是一种自定义数据类型,可以使用类来定义变量。所有使用类定义的变量都是引用变量,它们都将会引用到类的对象。类是用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在。
2、为什么static修饰的成员不能直接访问没有static修饰的成员?
3、对象内存模型以及类的各个成员的内存分配
package cn.itcast.demo02;
public class Car { String color; int count ; public void run(){ int x=1; /*for(int i = 0 ; i < 4 ;i++){ }*/ System.out.println("小汽车在跑 ..."+color+"..."+count); System.out.println(x); } }
package cn.itcast.demo02; /* * 成员变量和局部变量的区别 * * 1. 定义位置上的区别 * 成员变量,定义在类中,方法外 * 局部变量,方法内,语句内 * * 2. 作用域不同 * 成员变量,作用范围是整个类 * 局部变量,方法内,语句内 * * 3. 默认值不同 * 成员变量,有自己的默认值 * 局部变量,没有默认值,不赋值不能使用 * * 4. 内存位置不同 * 成员变量,跟随对象进入堆内存存储 * 局部变量,跟随自己的方法,进入栈内存 * * 5. 生命周期不同 * 成员变量,跟随对象,在堆中存储,内存等待JVM清理 , 生命相对较长 * 局部变量,跟随方法,方法出栈 生命相对较短 */ public class CarTest { public static void main(String[] args) { Car c = new Car(); c.run(); } }
4、类中的常见成员:构造器、方法、成员变量的内存分配?
5、成员变量没有赋值,但系统会给它默认赋值
6、局部变量和成员变量的区别?
定义的位置不同定义的位置不同
成员变量定义在类中方法体外;局部变量定义在方法体内。他们和他们的数据类型无关
作用域不同
成员变量在整个类中,局部变量只作用在方法体内
默认值不同
成员变量拥有默认值,可以不用直接赋值。而局部变量必须显示赋值,不赋值不能使用,必须初始化。
内存位置不同
成员变量存储在堆中,局部变量存储在栈中。成员变量跟随对象进入堆中,局部变量跟随方法入栈,存储在栈中。
生命周期不同
成员变量跟随对象在堆中存储,堆中内存等待JVM清理才能结束;局部变量跟随方法,只要方法出栈,局部变量的生命结束。因此成员变量比局部变量活的更久。
7、方法中的参数数据类型?基本数据类型和引用类型传参的区别?方法的参数的传递机制是什么?值传递!
8、封装的特征?什么是封装?封装的好处?关键词哪些?
方法本身就是一个封装,类也是一个封装。它们对外部是隐藏了实现细节。
封装的好处:提高了代码的复用性;隐藏了实现细节,还要对外提供了公共的访问方式。这是核心之一,也可以理解为就是封装的概念。此外提高了安全性。
private关键字
private属于成员修饰符,不能修饰局部变量。被private修饰的成员,只能在自己本类中使用。对于私有变量。提供公共的访问方式:方法(setXXX和getXXX)。通过setXXX方法可以对private修饰的成员进行限制,使得外部的访问必须通过setXXX方法对该变量进行操作,并且可以在setXXX方法内部对外部操作该变量进行限制,使得外部的操作必须满足该方法的要求才能操作成功。
一般对于成员属性的访问动作:赋值(setXXX),取值(getXXX),因此对私有的变量的访问方式可以提供对应的setXXX或getXxx方法;
总结:类中不需要对外提供的内容私有化,包括属性和方法;以后再描述事物,属性都私有化,并提供setXxx和getXxx方法对其进行访问;注意: 私有仅仅是封装的体现形式而已。 凡是自定义的类、自定义成员变量,应该私有化,提供set/get。
版权声明:本文来源于网络,由知了堂搜集整理,想要系统学习java,可以点击知了堂Java在线视频观看。