Fork me on GitHub

面向对象-java类以及类的成员

java类以及类的成员:属性,方法,构造器;代码块,内部类

image-20221110162529295

面向过程与面向对象

image-20221110164953202

image-20221110165951763

image-20221110170031878

java语言的基本元素:类与对象

image-20221110170335418

image-20221110170559944

image-20221110170706319

类的结构:属性与方法

image-20221110171238179

image-20221113151740802

image-20221113151947760

创建类的对象

image-20221113152239822

1
2
3
4
person p = new person;
//创建类的对象=类的实例化=实例化类
//调用对象的结构:属性,方法
//调用属性:"对象.属性"

image-20221113152826043

image-20221113153114797

1
p1成为了类的实例,并且属性就是成员变量

image-20221113160220957

如果创建了一个类的多个对象,那么每个对象都独立的拥有一套类的属性

image-20221113161151863

地址值是相同的,至于为什么 p3=p1,大概是因为类型是相同的所以省略了后缀吧

对象的内存解析

image-20221113161354349

这是对象的具体内存结构

image-20221113161824120

属性与局部变量的对比

image-20221113164125220

属性可以声明权限

image-20221113164142504

其实就是变量一类的东西放的位置不同,他的功能也就不同,

image-20221113164403247

局部变量在调用时都必须赋值

形参在调用时赋值即可

局部变量与属性加载的位置不同

image-20221113193414879

方法举例与格式的说明

image-20221115163831432

1
2
3
4
void表示没有返回值
有string的表示返回值为string
()内写的是形参

image-20221115164258700

image-20221115164343471

方法的声明

1
权限修饰符 返回值类型 方法名(形参列表){方法体}

image-20221115164555548

权限修饰符

1
private.public,缺省,protected--封装性再细说,默认都先使用public

返回值类型

1
如果有返回值,必须在方法声明时,指定返回值的类型.同时方法中需要使用return来返回指定类型的变量或者常量

image-20221115165041333

第一个时变量,第二个是常量

每一个可以输出的地方或者结果的地方都需要返回值

1
2
3
如果方法没有返回值,则在方法声明时,使用void来表示,通常情况下不用return,但是可以使用return;来结束此方法
return后不可以声明表达式

小结1

image-20221115165652260

image-20221115165702139

方法名

1
2
方法名属于标识符,要使用规范,遵循所见即所得原则

形参列表

1
2
3
可以声明一个或多个形参
格式 :数据类型 形参,数据类型 形参.....
只声明不赋值

image-20221116101717887

image-20221116101841712

一些注意点

类内部的方法可以调用类的属性

方法内部可以调用方法

递归就是方法自己调用自己

方法中不能定义方法

传输接受与返回

image-20221117101910110

多理解理解

当然如果没有返回那直接写个sout也可以

传参数的问题

image-20221117102137790

image-20221117102144642

1
2
3
4
5
如果方法会调用类的属性,那么修改类,也可以更改参数

如果用形参,传入数据,也是修改参数的一种方法

但是这两种方法一旦弄混了,那就会出现各种奇怪的bug

对象与static的错误

image-20221117102529665

如果你建方法时不用static,那么就必须造一个对象去调用,否则会出错,这里涉及到的点之后回去详细说明

关于方法声明的一些练习

image-20221117145702406

image-20221117145749766

如果直接调用method方法,那么就必须把static给补上

image-20221117150418016

先强化造对象的过程再说别的

image-20221117150645874

虽然说里边是个方法,但是实际上返回值是变量,也就是最终结果是变量,所以可以放

属性与形参

image-20221117152023865

这个代码已经说明的很清楚了

image-20221117152148621

形参的调用

重点好题⭐

image-20221117152920791

image-20221117153215395

也就是说,数组里面啥都能装,可以装数字型,也能把对象给装进去.

image-20221117154558648

换句话说这个数组的类是student类,的

具体原理参见柞与堆

image-20221117153528207

image-20221117153642066

还可以利用类里面的方法进行编辑

image-20221117154213954

数组之间的使用必须是同类型的.

面向对象

image-20221117170836337

万事万物皆对象

image-20221117171914481

对象数组的内存结构

image-20221117173103843

匿名对象的使用

image-20221117184719227

直接这样打印打印出来的是地址值

image-20221117184937277

1.这样写首先是调用对象的属性或方法

2.这是匿名对象的创建与调用,正常的是这样的image-20221117185158657

这new出来的对象是两个不同的对象

1
2
匿名对象只能调用一次,也就是一次性的

image-20221117185843410

自定义数组的工具类

1
给类命名的时候不要跟类库里的类重名

方法重载

同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可

image-20221130101446152

如彼此名虽同,但是具体不同,这些这些便是方法的重载

image-20221130104020210

image-20221130104211527

他和自动类型转换也有关

可变个数的形参

image-20221130104412847

image-20221202080801825

image-20221202081350342

此情况下优先考虑常规单个

可变参数参数个数也可以是0个

编译器会认为这两个参数是相同的

image-20221202081635222

image-20221202081843677

image-20221202081851151

实际上这就是一个数组,只不过写法简化了

image-20221202081926884

若是想直接传入数组也行

image-20221202082209252

可变形参必须声明在最后一个

方法参数的值传递机制

  • 变量的赋值

基本类型变量不存在这些问题

引用数据类型赋值指向同一个堆

image-20221202090314274

  • 基本数据类型的值传递

image-20221202092456844

关键字与保留字

关键字与保留字

定义:被Java语言赋予特殊含义,用作专门用途的字符串(单词)

特点:关键字中所有字幕都为小写

image-20230204163315062

image-20230204163406278

灰色不算关键字但是能当关键字

保留字:未来可能用,使用时要避开

标识符与命名规范

image-20230204165140864

image-20230204165146327

image-20230204165337404

float的范围比long还大,并且定义的数值后面要加F或f

定义char(字符型)变量通常使用单引号

char只能使用一个字符(等于两个字节)

image-20230204165401862

boolean变量 变量值只能取true或false,默认是false

常常在条件判断与循环中使用

tips:\n前面加.变为\n.就不再表示了,\的作用相当于转义.,\后的特殊符号不在表达含义

String

string不属于基本数据类型,他是引用数据类型

image-20230204165431567

标识符与命名规范

变量

变量的概念:申请内存中的一个区域

​ 该区域的数据可以在同一类型范围内不断变化

​ 变量是最基本的储存类型,包含变量名,变量类型和储存的值

变量用于在内存中保存数据

image-20230204164500193

变量类型:整形,字符型浮点型

定义变量的格式 数据类型 变量名 = 变量值

image-20230204164521034

程序的读取顺序从上到下,先print后定义变量就不行

一个大括号就是一个作用域,出了作用域之后变量不生效

同一个作用域内,不可以声明同名的两个变量

逆向思维,反证法,你不知道这个东西行不行,你就假设他行,然后去试试看(好低级的话)

标识符与命名规范

基本数据类型之间的运算规则

1.自动类型提升image-20230204165521721

定义的结果变量的范围要大过数值否则就会丢失

整型和浮点型也可以,只要数值在范围内即可

低级往高级做运算应该往高级上去靠,并且整形的范围比浮点型的小

所以结论

image-20230204165529655

image-20230204165533567

char变量和容量小的变量做运算则比较特殊

image-20230204165541775

强制类型转换运算,是自动类型提升的逆运算

在被重定义的数值前加()强转符

损失的小数点称为截断操作

image-20230204165556547

标识符与命名规范

常用的dos命令

dir: 列出当前目录下的文件以及文件夹

md:创建目录

rd:删除目录

cd:进入指定目录

cd..:退回到上一级目录

cd:退回到根目录

del:删除文件

exit:推出dos命令

补充:echo javase>1.doc echo 内容>(>代表到)文件名.doc

批量删除同类型文件文件名用*号,如del *.doc

del选择文件夹删除的是文件夹中的文件

左右键移动光标

上下键

  • Copyrights © 2023 Langxecho
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信