栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

课堂总结3

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

课堂总结3

一、类和对象 1.类和对象概念

类就是一类对象的统称。对象就是这一类具体化的一个实例;一个类,可以产生无数的对象。声明一个类就是创建一个新的数据类型,而类在Java中属于引用类型,Java使用关键字class来声明类。

 创建类

class {    

       field;//成员属性  

       method;//成员方法

}

实例化对象

<对象名> = new ();

class为定义类的关键字,ClassName为类的名字,{}中为类的主体。类中的元素称为:成员属性。类中的函数称为:成员方法。

2.类的实例化

用类类型创建对象的过程,称为类的实例化

new 关键字用于创建一个对象的实例

使用 . 来访问对象中的属性和方法

同一个类可以创建对个实例

3.类的成员

类的成员可以包含以下:字段、方法、代码块、内部类和接口等。在类中, 但是方法外部定义的变量;这样的变量我们称为 "字段" 或 "属性" 或 "成员变量"。

使用 . 访问对象的字段

"访问" 既包含读, 也包含写

对于一个对象的字段如果没有显式设置初始值, 那么会被设置一个默认的初值
注意:

     1.Person person = null ;   //不指定任何对象

     2.一个引用可以指向一个引用

       Person person2 = person ;//代表person2这个引用指向了person这个引用指向的对象

     3.引用不一定在栈上,在不在栈上取决是不是局部变量

     4.一个引用不可以指向多个对象,只能保存一个对象的地址

4.static关键字

如果在任何方法上应用static关键字,此方法称为静态方法。静态方法属于类,而不属于类的对象。可以直接调用静态方法,而无需创建类的实例。静态方法可以访问静态数据成员,并可以更改静态数据成员的值。

注意:静态方法和实例无关, 而是和类相关,因此这导致了两个情况:静态方法不能直接使用非静态数据成员或调用非静态方法(非静态数据成员和方法都是和实例相关的);

this和super两个关键字不能在静态上下文中使用(this 是当前实例的引用, super是当前实例父类实例的引用, 也是和当前实例相关)。

5.private实现封装

private/ public 这两个关键字表示 "访问权限控制" ,被 public 修饰的成员变量或者成员方法, 可以直接被类的调用者使用,被 private 修饰的成员变量或者成员方法, 不能被类的调用者使用。

注意:private 不光能修饰字段, 也能修饰方法通常情况下我们会把字段设为 private 属性, 但是方法是否需要设为 public, 就需要视具体情形而定;一般我们希望一个类只提供 "必要的" public 方法, 而不应该是把所有的方法都无脑设为 public。

如果需要获取或者修改这个 private 属性, 就需要使用 getter / setter 方法

getName 即为 getter 方法, 表示获取这个成员的值

setName 即为 setter 方法, 表示设置这个成员的值

6.构造方法

构造方法是一种特殊方法, 使用关键字new实例化新对象时会被自动调用, 用于完成初始化操作.new 执行过程为对象分配内存空间调用对象的构造方法

new 执行过程为对象分配内存空间

        调用对象的构造方法

注意 1.方法名称必须与类名称相同

        2.构造方法没有返回值类型声明

        3.每一个类中一定至少存在一个构造方法(没有明确定义,则系统自动生成一个无参构造)

7.this关键字

this表示当前对象引用(注意不是当前对象). 可以借助 this 来访问对象的字段和方法.

1、调用属性

2、调用方法

3、调用构造方法

7.代码块

使用{}定义的一段代码

根据代码块定义的位置以及关键字,又可分为以下四种:普通代码块、实例块、静态块、同步代码块

注意:1、静态代码块不管生成多少个对象,其只会执行一次,且是最先执行的;静态代码块执行完毕后, 实例代码块(构造块)执行,再然后是构造函数执行

2、实例代码块优先于构造函数执行

二.时间复杂度和空间复杂度 1.算法效率

算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。

 时间复杂度主要衡量的是一个算法的运行速度

空间复杂度主要衡量一个算法所需要的额外空间

2.时间复杂度和空间复杂度计算

计算时间复杂度时,我们其实并不一定要计算精确的执行次数,而只需要大概执行次数,那么这里我们使用大O的渐进表示法。

推导大O阶方法:

1、用常数1取代运行时间中的所有加法常数。

2、在修改后的运行次数函数中,只保留最高阶项。

3、如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶

大O的渐进表示法去掉了那些对结果影响不大的项,简洁明了的表示出了执行次数。另外有些算法的时间复杂度存在最好、平均和最坏情况:

最坏情况:任意输入规模的最大运行次数(上界)

平均情况:任意输入规模的期望运行次数

最好情况:任意输入规模的最小运行次数(下界)例如:在一个长度为N数组中搜索一个数据x

在实际中一般情况关注的是算法的最坏运行情况,所以数组中搜索数据时间复杂度为O(N)

空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度 。空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟实践复杂度类似,也使用大O渐进表示法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349578.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号