类和对象
通过这段时间的学习,我觉得类和对象是java学习过程中最重要的思想,(我导师在编代码的一天凌晨发了个朋友圈说,强大的面向对象思想让我有恃无恐,哈哈哈哈)
类注意事项
类具有属性和行为
一个类一个源文件 一个类对应一个.class字节码文件
类的属性一般设置为私有,行为按情况而定
new 一个对象 People p=new People new的作用1堆上开内存 2调用构造函数 p占四个字节
this指向当前对象
常考点:
一、this关键字的使用
答:1:this 关键字引用类的当前实例,静态成员方法中不能使用this 关键字。当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this 引用
2:this 关键字调用其它类型的构造函数。
调用构造函数应该注意:a在构造调用另一个构造函数,调用动作必须置于最起始的位置。b不能在构造函数以外的任何函数内调用构造函数。c在一个构造函数内只能调用一个构造函数。
二、static关键字的使用
答:1.修饰成员变量(即静态变量,类变量)实例变量跟对象有关,对象去访问;静态变量跟类有关,类名去访问。
2.修饰方法(即为静态方法,类方法)a静态方法只能类名去调用b静态方法中无this
3.静态块(专门用来初始化静态变量)static{count=0;}
4.修饰内部类。
三、基本数据类型的包装类
答:基本数据类型:byte–Byte,short–Short,int–Interger,long–Long,boolean–Boolean,char–Char,float–Float,double–Double
1、以整型数据类型为例int a=10;(阴式装箱),即Interger a=Interger.valueof();(显式装箱)调用加包里的方法。int b=a(隐式拆箱),int b=a.intvalue()(显式拆箱)。
2、“==”比较的是地址不是数值,int类由于cache=new Interger[(hight-low)+1]一般可以直接比较-128到127这256个数值的大小,其余和字符串通常用equals比较。
四、String、StringBuider与StringBuffer的异同
答:1、相同点:都用来操作字符串。
2、不同点:a.多线程环境,StringBuffer用在多线程里。
b.当常量与变量进行拼接,调用StringBuilder.append();
StringBuilder s=new StringBuilder();
s.append(temp);
s.append(“3”);
s.toString();
c.效率上:String效率最低,因为底层不断调用许多StringBuilder函数,StringBuilder和StringBuffer差不多,前者效率稍微比后者高。
五、类的初始化顺序
答:静态变量,静态块,实例变量,实例块,构造方法。
六、函数重载
答:函数重载是在编译器中根据参数确定调用的方法,在同一个类中,函数名相同,参数列表不同。
习题:猜拳游戏 银行问题 迷宫实现 puzzle问题(下篇博客着重写代码)。