java学习(六)

1.成员变量和局部变量

当局部变量和成员变量重名时,方法中会根据“就近原则”使用局部变量的值,如果要区分的话,可以使用this关键字。
格式:this.成员变量名

this关键字的作用:

1.this可以修饰属性、方法、构造方法
2.this可以理解为当前使用的对或者正在创建的对象,通过哪个对象调用的方法谁就是this
3.可以在构造方法中通过”this(形参)“的方式调用本类中其他重载的构造方法(注意:在构造方法内部必须写在首行)

2.构造方法

在我们使用类的时候,会使用一个特殊的方法,叫构造方法,也叫构造器。
构造方法就是专门创建对象的方法,当我们在new的时候其实就是调用构造方法。

如何创建构造方法呢?

public 构造方法名(参数){

注意:
1.构造方法不能写返回值
2.构造方法名必须和当前的类名一模一样,大小写都得一样。
构造方法也可以重载。

构造方法的作用:

1.定义无参构造方法,可以new对象
2.定义有参构造方法,可以在new对象的同时给属性赋值
注意:
如果类中没有定义构造方法,系统会自动给我们提供一个无参的构造方法;
如果类中自己定义了有参构造方法,它会把系统提供的无参构造方法覆盖掉,需要手动再提供一个无参构造方法。

3.面向对象的第一大特征:封装性

当创建完对象以后,如果直接通过"对象名.属性名"的方式去对属性赋值的话,可能会出现一些不合实际情况的问题,例如要求对年龄进行赋值,直接this.age=-1,会出现一些不合实际的问题,因为年龄不可能是负数。
那应该怎么办呢?
可以通过”对象名.方法名“的方式赋值,因为我们可以在方法里面加大量的业务逻辑对属性值进行限制。
使用封装:
1.将属性私有化
2.提供公用的(getting setting)方法实现调用和赋值

4.面向对象第二大特征:继承性

1.继承就是允许子类拥有父类的属性和行为
优点:提高代码的复用性;缺点:耦合度更高了。
2.继承语法
class 子类名 extends 父类{


①子类继承父类以后,父类声明的所有属性和方法都可以获取到
②子类除了通过继承获取父类属性和方法外,还可以定义自己独有的方法和属性
③java继承是单继承,一个类只能继承一个父类,一个父类可以有多个子类。

super关键字

super关键字可以修饰属性、方法、构造方法。
(1)当子类和父类属性名时,可以通过”super.属性名“调用父类中声明的属性。如果想调用子类同名的属性可以使用”this.属性名“
(2)子类重写父类方法后,如果子类想再次调用父类被重写的方法,可以使用”super.方法名()“调用。
(3)super修饰构造方法,通过在子类构造方法中使用”super(形参)“来显示调用父类构造方法

5.面向对象第三大特征:多态

什么是多态?

多态指的是一个对象的多种形态,使用多态前提是要有继承和接口的实现。
1.方法的重载和重写就是一种多态
2.子类对象的一种多态性
Pet p1=new Dog("泰迪","小迪");
1)父类的引用指向的是子类的实例
2)在执行时,调用的是子类的方法,在编译时,调用的是父类的方法
3)编译时看左边,运行时看右边

6.访问修饰符

访问修饰符可以修饰方法、属性、类、接口。
访问修饰符一共有四种:
1.private:只能在当前类中调用
2.缺省:在同一个包中可以调用
3.protected:受保护的,在同一个包中可以调用
4.public:公共的,在同一个项目下都可以调用

7.方法重写

如果父类方法满足不了子类要求,子类可以重写父类方法。
重写规则:
(1)子类方法必须和父类的方法名、返回值类型,参数列表一致
(2)子类的访问修饰符权限不能小于父类的访问修饰符权限
(3)子类方法和父类方法必须同为static或者非static

8.final关键字

final关键字可以修饰类、方法、成员变量、局部变量。
final修饰类时,这个类不能被继承,但是可以继承别的类。
final修饰方法,这个方法是一个最终方法,不能被重写。
final修饰成员变量,成员变量的值不可改变。
fina修饰局部变量,值不能改变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值