Java学习笔记(持续更新中)

面向对象:对象是由属性和方法构成,封装起来的一个整体,其内部信息可以对外界隐藏,并且可以重复使用。

属性:用来描述对象,说明对象是什么。

方法:用来使用对象,对象能够做什么。

面向对象的三大特征:封装、继承、多态

 

1.1 .1类与对象的关系

类是对象的统称,比如:人(类),  黄种人、黑种人、白种人(对象)

类是抽象的,对象是具体的。类是对一类对象的抽象,对象是对类的具体化。

一个类可以构建多个对象,但是一个对象只能归属一个类。

1.1.2类可以干嘛?封装对象的属性和方法。

//用雨伞类对雨伞的属性和方法封装
public class Umbrella{
    //属性
    String color;//颜色
    double weight;//重量
    USeFor usefor;//用途
    
    //方法
void shelter(){
    //方法体
  }
}

1.1.3类的设计语法:

class 类名{

//成员变量

//方法

}

设计原则(待续.....):

  • 内聚性原则:
    设计类时需要一个类对应一个实体,例如:在商城应用中,用户类对应用户实体,订单类对应订单实体,不能把订单类对用用户实体

1.2 对象

1.2.1对象的概念:

对象代表现实世界的可以明确标识的一个物体,如:一个双肩包,一个苹果等。

创建对象的过程:

  • 分配存储空间  Apple a1=new Apple();
  • 为成员变量赋初始值  Apple a2=new Apple("a");
  • 调用构造方法 

1.2.2对象的序列化

在程序中创建对象的对象,在程序的一次运行中,它始终存在,但是当程序结束后就会消失。如果希望永久存在,就需要借助序列化实现。序列化有如下作用:

  1. 吧内存中的对象保存到一个文件或者数据库中,
  2. 在网络上传输对象
  3. 通过RMI(远程方法调用)传输对象

1.3 成员变量和局部变量

成员变量定义在类中,在整个类中都可以被访问,随着对象的建立而建立,存在于内存的堆中,有默认的初始化值

局部变量定义在局部范围内,比如方法内,语句内,作用范围一旦结束,空间变量会自动失效,存在于栈中,么有默认的初始化值

1.4 封装

封装是java的特性之一,也是面向对象编程的核心思想。封装是将对象的属性和方法隐藏起来,只提供对外的接口。优点:

  • 减少耦合性,降低程序复杂性
  • 使操作方便简单,便于使用
  • 提高程序的复用性
  • 隐藏程序细节,提供公共的访问接口,提高程序的安全性

1.5 方法

方法是按照实现的功能模块封装起来的代码模块,是解决特定问题的步骤有序集合。作用:提高开发效率,减少重复劳动,精简代码,增加代码的可读性。

1.5.1 方法的一般格式

修饰符  返回值类型  方法名(参数类型 形式参数1,参数类型 形式参数2···){

//方法体;

return 返回值;

}

分析:

  • 修饰符:  对方法的约束,public、default、protected、final、static都是修饰符
  • 返回值类型: 方法运行后返回结果的数据类型
  • 参数类型: 形式参数的数据类型
  • 形式参数:  由方法定义的、调用方法时用于接收数值的变量
  • return: 方法的结束标志

当方法没有返回值的时候,应该用void修饰,且return语句直接写return即可

1.6 构造方法

构造方法又叫构造函数,是类的初始化方法。用new运算符创建对象之后,对应类中的构造方法就会被调用。每个类都有构造方法,如果没有显式地为类定义构造方法,编译器会在该类中自动创建一个默认的无参构造方法。

可以理解为:代码中解决问题的部分被放在了一个专门的地方,好处在于可以多次调用。

格式:

pubic class 类名{
    public 类名(){
    //构造代码块  这里面才是解决问题的部分,外面的只是格式
}

}

1.7 继承

多个类存在相同的属性或者行为时,将这些相同的内容抽取到单独的一个类中,那么这多个类就不用再定义相同的属性和行为,只要继承单独的那个类即可。例如:有三个类,分别是Test1、Test2和Test3,这三个类中都有name和age属性,如果分别定义,则会重复的使用name和age,此时我们只需要定义一个Test类中包含name和age,然后Test1、2、3去继承Test类,就不用在这三个类中分别在定义这些。

好处:提高代码的复用性

坏处:破坏了父类的封闭性,父类的相关细节暴露给子类;父类改变的时候也会影响子类。

1.8 this和super关键字

this关键字是对本类对象的引用

super关键字是对父类关键字的引用

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值