面向对象java总结(干活慢慢,带好水)

面向对象

使用对象间的关系来描述事物之间的联系,这种思想就是面向对象。

类是由3部分组成的:

类的名称:类名,首字母必须大写,比如Person。

类的属性:一组数据,比如性别。

类的方法:允许进行操作的方法,比如说话。

构造方法指的是init方法
在方法的列表中,第1个参数永远都是self,表示的是对象自身。

如何使用对象

访问属性:对象名.成员变量

访问行为:对象名.方法名(...)

创建方法

类名 对象名=new 类名

类方法

使用修饰器@classmethod来标识类方法

要想调用类方法,既可以通过对象名调用类方法,又可以通过类名调用类方法,这两种方法没有任何区别。

定义类(注意事项)

一个java文件可以定义多个class类,且只能是public修饰,而且public修饰的类名必须成为代码文件名实际开发中建议还是一个文件定义一个class类

成员变量完整格式:修饰符 数据类型 变量名称=初始化值,存在默认值

静态方法

使用修饰器@staticmethod来标识静态方法。

静态方法是没有self参数,在静态方法中无法访问实例变量。

静态方法中不可以直接访问类属性,但是可以通过类名引用类属性。

静态方法跟定义它的类没有直接关系,只是起到了类似函数的作用。

通过“实例.属性”添加属性的属性都是实例属性。

类属性是类所拥有的属性,它需要在类中进行显示地定义(位于类内部,方法的外面)

封装

对象代表什么,就得封装对应的数据,并提供数据对应的行为

封装的好处

让编程变得简单,直接找对象,调用方法就行

降低学习成本,不用记对象有哪些方法,直有需要直接去找就行

private关键字

private关键字是一个权限修饰符

被private修饰的成员只能在本类中才能访问

针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作:

提供“setxxx(参数)”方法,用于给成员变量赋值,方法用public修饰

提供"getxxx(参数)"方法,用于获取成员变量的值,方法用public修饰

成员变量与局部变量

成员变量:类下面,方法上面

局部变量:方法里面

this用来区分成员变量和局部变量

this本质:所在方法调用者的地址值

构造方法

特点:方法名与类名相同,大小写也要一致。没有返回值类型,连void都没有。没有具体的返回值(不能由return带回结果数据)

执行时机:创建对象的时候由虚拟机调用,不能手动调用构造方法。每创建一次对象,就会调用一次构造方法

注意

构造方法的定义:

如果没有定义构造方法,系统将给一个默认的无参数构造方法

如果定义了构造方法,系统将不再提供默认的构造方法

构造方法的重载

带参构造方法,和参数构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载

推荐的使用方法

无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法

标准JavaBean类

类名需要见名知意。 成员变量使用private修饰。 提供至少两个构造方法:无参构造方法,带全部参数的构造方法。 成员方法:提供每一个成员变量对应的setxxx()/getxxx()。 如果还有其他行为也需要写上

内存图

Student s=new Student()中做的事

1.加载class文件 2.申明局部变量 3.在栈内存中开辟一个空间 4.默认初始化 5.显示初始化 6.构造方法初始话 7.将栈内存中的地址赋值给左边的局部变量

基本数据类型和引用数据类型

键盘录入

第一套体系:

nextInt(),nextDouble(),next()接收字符串,遇到空格,制表符,回车就停止接收。这些符号后面的数据就不会接收了

第二套体系:

nextLine()接收字符串

可以接收空格,制表符,遇到回车才停止接收数据

两种体系不能一起用

接口和抽象类和普通类的区别

抽象类

一个非抽象的类,继承抽象类,必须将抽象类中的抽象方法进行覆盖/重写/实现

抽象类无法实例化,无法创建对象,抽象类是被子类来继承的

抽象类无法实例化,但抽象类有构造函数可以供子类使用

抽象方法表示没有实现的方法,没有方法体的方法

接口

支持多继承,且一个接口可以继承多个接口

接口中的方法是抽象,所以不能有方法体

定义抽象方法的时候可以省略修饰符public abstract

常量的定义结合final 是public static final可以省路

总结

抽象类是半抽象的,有构造方法,抽象类可以包含抽象方法和非抽象方法,也可以有成员变量(不仅仅是常量) 类和类之间只能单继承,一个抽象类只能继承一个类(单继承)

接口是完全抽象的,没有构造方法,接口和接口之间支持多继承,一个类可以同时实现多个接口 这在Java 8之前基本正确,但在Java 8及之后,接口可以包含默认方法和静态方法

比较内容 抽象类 接口(特殊的抽象类) 构造方法可以有 不可以有方法 可以有抽象方法(抽象方法只能被abstract修饰,不可被private、static、synchronized和native修饰)和普通方法 只能有抽象方法,但1.8版本之后可以有默认方法。接口只有定义,不可有方法实现 实现 extend implments 类修饰符 public、default 默认public 变量 可以有常量也可以有变量 只能是静态常量默认有public static final修饰,必须附上初始值,不能被修改多继承单继承多个接口静态方法可以有不可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值