疯狂java第五章

知识点记录

1.类的定义
.被static修饰的变量或者方法是属于类的,所有也叫做类变量和类方法。
.非static修饰的变量或者方法是属于类的实例,也就是new的具体对象,所以也叫做实例变量和实例方法。
2.对象的应用this
.this在方法中使用
this可以代表任何对象,当this出现在某个方法体中时,它所代表的对象是不确定的,但它的类型是确定的:它所代表的只能是当前类的实例;只有当这个方法被调用时,它所代表的对象才能确定下来:谁在调用这个方法,this就代表谁,其中this可以省略。
.this在构造器中使用
如果在构造器中有个一个局部变量与成员变量同名,又必须在构造器中使用这个成员变量,则必须使用this前缀,若没有同名的,则可以省略this前缀。
3.类的方法
.类的方法参数传递是值传递,若参数是基本类型,则传递给方法前,会先在栈中复制一份,再将拷贝的数据传递给方法内部,方法内部怎么改变数据,也不影响拷贝前的数据,若是引用类型,也先是在栈中拷贝一份,但是拷贝的是对象的引用地址,这就相当于Person p1 = new Person; Person p2 = p1 其结果就是p1或者p2相等,它们都是同一个对象的地址引用,通过p1或者p2改变对象的值效果相同;也就说方法外或者方法中都是使用同一个对象数据。
4.成员变量和局部变量
.通过new一个实例可以访问类变量,若设置为2,那么new一个其他实例访问该类变量也将得到2,这是因为类变量是属于类的,他的生命周期就是该类在程序中的生命周期一样。
.方法中:形参的作用于是真个方法执行周期内有效;局部变量,它的作用域从定义该变量的地方生效到着整个方法结束;局部代码块,它的作用域从定义该代码块地方生效到代码块结束。
5.多态
.java引用变量有两个类型,一种是编译时类型,一种是运行时类型,编译时类型由声明该变量类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型与运行时类型不一样,就是多态了。
.Furit a = new Apple() 若Furit 有一个成员变量 int i = 1,一个方法eat();同样,Apple有一个成员变量int i = 7,重写父类方法eat(),则编译时a的类型是Apple的父类类型,但是运行时却表现Apple的行为特征,也就是a.eat()会执行Apple类中的方法,但是a.i输出的是父类中的值,这是因为成员变量不具备多态性。
6.代码的复用
.什么时候使用继承?什么时候使用组合?这个没有明确的定义,但是大部分时间我们可以根据其现实意义区分并加以设计程序
.继承表达一种"is-a"的关系,如胳膊和人
.组合表达一种"“has -a”的关系,如学生会和学生

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值