学习笔记-11.25--面向对象基础

面向对象基础:

1.定义:对象包括属性和方法,属性是指对象的状态,方法是指处理对象的行为。java语言中,类是对象的模板,所有的对象都是由类创建的,属性即类的成员变量,方法也就是类的成员方法。

2.特点

封装性:将对象的属性和方法封装起来,使用户知道并使用对象的属性和方法即可,而不需要知道对象的具体实现。比如手机。。优势:实现错误局部化,提高程序维护性

继承性:面向对象设计中,允许通过继承原有类的部分特性或者全部特性而产生新的类。子类不仅可以继承,还可以添加一些方法创建特有的个性

多态性:指父类的属性和方法被子类继承后,可以有不同的数据类型或者表现出不同的行为

3.类的声明

修饰符 class 类名 extends 父类名 implements 接口列表   {  }

修饰符:public ,abstract , final;定义为abstract时,类中没有实现的方法,不能被实例化;定义为final时,不能有子类,不能被覆盖

class 类名 是必选的,其他可选可不选

例子:public class Apple{}

4.成员方法的声明

修饰符 方法返回值类型 方法名(参数列表) {  方法体 }

修饰符:public,protected,private 可选

方法返回值和方法名是必选的。没有返回就用void

参数列表:用于指定方法中所需的参数,多个时用逗号隔开

public int add(int src,int des){

int sum=src+des;

return sum;  }

5.声明成员变量

修饰符 static final 变量类型 变量名;

修饰符:public,protected,private 可选参数;

static:可选,用于指定成员变量为静态变量,可以通过类名直接访问,如果没有就表示该成员变量为实例变量

final:表示该成员变量的取值是不会改变的常量

6.静态变量和实例变量的区别

在运行java虚拟机时只为静态变量分配一次内存,在加载类的过程中完成对静态变量内存的分配,可以通过类名直接访问。实例则不痛,每创建一个实例就会为该实例的变量分配一次内存

7.定义局部变量

final 变量类型 变量名;

不能用public等,static也不能用。

变量的生命周期:从声明一个变量并分配内存空间,使用变量,然后释放该变量并清除内存空间的一个过程。

成员变量在类中声明,在整个类中都有用

局部变量在方法内或者方法内的代码块内声明,只在方法内或者方法块内有效。

8.构造方法

方法名和类名必须一致,可以没有返回类型,也不用有void,用于初始化成员变量,创建对象时立即被调用。如果没有定义构造方法,java会自动提供一个默认的构造方法,用来实现成员变量的初始化

9.对象的创建和声明

创建:类名 对象名   例如:Apple redApple,创建时并不指向任何内存,只是创建了一个引用,初始值为null

声明:为对象分配内存空间,即实例化对象。 对象名= new  类名(参数列表)   例子: redApple = new Apple()

10.使用对象

对象.成员变量 round.r=20,调用成员变量,并赋值

对象.成员方法(),float area=round.getArea(),调用方法

11.包

定义:一组相关类和接口的集合。

用途:把功能相近的类组织在一起;避免类名重复;访问权限控制

12.继承

子类的创建:修饰符 class 子类名 extends父类名

例如:abstract class Cattle extends Animal{}

如果子类的变量名和父类相同,则称子类的成员变量隐藏了父类的成员变量

如果子类的方法名和父类相同,则称子类的成员方法覆盖了父类的成员方法

13.this用法

当局部变量和成员变量的名字相同时,成员变量会被隐藏,这时在成员方法中用 this.成员变量名 来表示成员变量。this.成员方法名()

14.super用法

当父类和子类的成员变量或者成员方法相同时,在子类中想使用父类的方法或者变量时用super

super.成员变量名,super.skin="羽毛";

super.成员方法名(),super.move();

15.重载、重写、覆盖

方法的重载:一个类中出现多个方法名相同,但是参数个数或者参数类型不同的方法,执行时要根据调用的参数个数和类型来判断;

方法的覆盖:当子类的方法名和父类的方法名相同时,则称子类的方法覆盖了父类的方法,调用父类的方法用super

方法的重写:父类是抽象类,在父类中无法实现的抽象方法必须要用子类去重写。抽象方法只有方法的声明,没有方法的实现。也就是说父类中无法实现的方法,子类定义一个相同的方法去实现它。

16.抽象类和抽象方法

抽象类:只声明方法而不去实现它的类。抽象类不能被实例化,也就是不能创建对象。

abstract  class 类名 {  类体 }

抽象方法:在抽象类中创建的,没有实现的,必须要子类重写的方法;

abstract  方法返回值类型  方法名 (参数列表);

例:public abstract void harvest();(不能使用private或者static定义)----没有方法体,不能实现的

17.final类

final class 类名{类体}

public final class FinaDemo{}

有时候为了程序的安全,有些类不能被继承,即不能有子类,可以声明为final类。

18.内部类

内部类不能使用public修饰,因为public修饰的类名要合文件名一致,所以一个文件中只允许一个public类

====成员内部类:  ---和成员变量一样,属于类的全局成员

public class Sample{

   public int id;

   class Inner{

}

}

一般格式:第一步:Sample sample = new Sample();先创建外部类,才能创建自己的

                    第二步:Sample.Inner inner = sample.new Inner();

====局部内部类:和局部变量一样,都是在方法内定义的,只在方法内部有效

public void sell(){

      class Apple{} }

====静态内部类:普通内部类不能有static数据和static属性,也不能包含嵌套类,但静态内部类可以。而静态内部类不能声明为private,一般声明为public,方便调用。

public class Sample{

       static class Apple {}

}  可以直接实例:Sample.Apple apple = new Sample.Apple();和成员内部类不一样,成员内部类要先创建外部类的

====匿名类:new 类名(){};;;经常用于创建接口的唯一实现类,或者创建某个类的唯一子类

19.接口

修饰符 interface 接口名 extends 父接口列表{}

是为了实现多继承而出现的,只是定义方法而不需要去实现。接口里面的方法都要被类实现。

接口的所有方法都是抽象的,抽象类只是部分抽象;接口可以实现多重继承,类只能继承一个超类;接口是公开的,里面不能有私有的方法和变量。









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码下载:完整代码,可直接运行 ;运行版本:2022a或2019b或2014a;若运行有问题,可私信博主; **仿真咨询 1 各类智能优化算法改进及应用** 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 **2 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 **3 图像处理方面** 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 **4 路径规划方面** 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 **5 无人机应用方面** 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 **6 无线传感器定位及布局方面** 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 **7 信号处理方面** 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 **8 电力系统方面** 微电网优化、无功优化、配电网重构、储能配置 **9 元胞自动机方面** 交通流 人群疏散 病毒扩散 晶体生长 **10 雷达方面** 卡尔曼滤波跟踪、航迹关联、航迹融合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值