day51 java面向对象OOP

类和对象

1 对象、类

对象:一个实体

对象包含静态特征和动态特征

静态特征:属性(实例变量)

动态特征:行为(实例方法)

把具有相同属性和方法的对象分为一类

2 现实对象转化程序的对象

学生类: 
属性:  学号 ,姓名,性别,年龄,联系方式,地址...
方法:  吃饭.学习....

3定义类和创建对象

3.1)定义类的语法

访问修饰符class类名{

        定义属性

        定义方法

}

1.1权限访问修饰符:public,默认的

1.2类名:见名知义

3.2)创建对象

类名 对象名= new 类名();

1)访问对象属性

对象名.属性名

属性有默认值

byte short int long :0

float double :0.0

char:'\u0000'

boolean: false

引用类型:null

2)访问实例方法(属于对象所有)

对象名.方法名();

构造方法

类名  对象名 = new 构造方法()

构造方法的方法名与类名相同

构造方法的作用:与new关键词一起使用

创建对象,同时给属性赋初始值。

构造方法默认有一个无参构造

当创建一个构造后系统不会再提供无参构造

需要自己进行创建无参构造。

方法重载(overloading):

在一个类中:有多个方法名相同方法,但参数不同的方法  

参数不同:个数不同,类型不同,顺序不同

无关:与返回值类型无关,与访问修饰符无关,与参数无关

Java 重写(Override)与重载(Overload) | 菜鸟教程 (runoob.com)

this:

代表引用对象。

在构造方法中使用其他的构造方法使用this(),必须放在第一行,否则报错。能够减少冗余,具有可重复性

当方法中形式参数和属性变量名相同时,使用this.变量名调用对象属性。

成员变量和局部变量的区别

成员变量在整个对象存在期间存在,局部变量在方法运行期间存在。

成员变量有默认值,局部变量需要先赋值在使用。


成员变量:在类中方法外         局部变量:在方法定义中或者方法声明上

访问修饰符

public protected  default  private

Java 继承详解 | 菜鸟教程 (runoob.com)   修饰符详解。

一、封装

1实现属性封装

1)属性私有化

2)提供公共的getter setter方法 

set赋值方法:setXxx():属性名首字母大写,第二个字不能大写

属性为boolean类型 getXXX()变为isxxx();

二、继承

满足子类 is a 父类

java.lang.Object类是所有类的父类

子类可以继承父类的哪些内容?

  1)子类可以继承父类中所有的实例变量和实例方法

   2)不能继承父类的构造方法  

  3)子类可以有自己的实例变量和方法

创建子类是否调用父类的构造方法?

调用了父类的构造方法,在执行子类的构造方法

创建了子类对象,为什么会调用父类的构造方法。

继承了父类的属性,属性初始化,赋初始值

子类构造方法如何访问父类的无参构造方法?

super()-->访问无参,可省略不写

super(参数)-->访问有参,必须写在构造方法第一行

编程时是先有子类还是先有父类?

分析 把子类共有的属性和方法抽象得到父类

编程 父类-->子类

super关键字

  1)super关键字是什么?

super在子类对象中,访问父类中成员

 2)super在哪里使用?

子类的成员方法

子类的构造方法

3)super可以访问哪些内容?

在子类成员方法:访问父类的实例变量和实例方法

super.属性名

super.方法名()

在子类构造方法:使用父类的实例变量和实例方法

访问父类的构造方法:放在子类构造方法的第一行;

方法重写

子类重新定义一个与父类相同的方法

1)在继承关系中 方法重写

2)方法名相同  参数相同 返回值类型相同

3)访问权限大一些或者一样

4)不能声明更广的异常

5)添加注解@override

子类不能重写父类的哪些

1)构造方法

2)parivate 修饰

3)final修饰

4)static修饰

5)属性不能被重写

三 多态(类型转换)

1)基本类型转换

自动类型

强制类型

2)引用类型  (类之间有继承关系)

父类引用子类对象时,可以访问哪些内容

访问父类的所有属性和实例方法

执行子类重写的方法而非父类的方法,如果非重写方法,找父类方法.

不能访问子类所有的属性和特有的方法

使用关键词: instanceof 判断

对象名 instanceof  类   返回值为boolean

右侧类与对象必须先有继承关系

Java写继承子类的时候报错There is no default constructor available in ‘子类名‘_子类有id,报错-CSDN博客

单例模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值