类和对象

什么是类?

什么是对象

 

 

在java中类相当于c语言的结构体

 

 使用class定义一个类名,在类里面方法的外面定义想要的功能(字段)成员方法(行为),就可以生成一个类,

一个java文件只有一个类,public修饰的类名必须和文件名相同,且一个文件只有一个类才能一键修改

类的实例化:

相当于自己创建了一个类似于iint,double的类型,然后用new这个关键字来实例化Dog这个对象,每一次new都可以实例化一个新的对象

定义的类里面的成员属性就会存储在对象里,如何访问对象的属性?

通过对象的引用来且赋值或者是初始化

 对象的成员属性在没有赋值时,引用类型默认时null,简单类型默认时0

同一个类可以创建多个对象

 

 

 当我们的局部变量名和变量的值相同时,程序采用的是就近原则,

 

要么参数名和变量名不一样,要么在前面加this,this是当前对象的引用,如果访问当前对象的变量都建议加上this,防止调用方法时出现错误

通过this可以访问当前对象的成员属性/成员变量,但是静态成员的变量不支持

当出现多次调用同一个方法时怎么判断是调给谁呢?

 因为方法参数默认隐藏了一个参数Date this,所以我们在调用多次方法时都可以使用

如何初始化对象?

1.构造方法

构造方法是一种特殊的成员方法,并且在整个对象的生命周期只调用一次,当调用完成后构造方法之后对象才产生

方法名必须和类名相同,没有返回值

 

当我们实例化了一个对象后,在new后面相当于就是在调用Studend这个方法了

 也可以在后面进行赋值

构造方法的作用是对对象中的成员进行初始化

当一个类当中没有任何构造方法,java会自动生成一个不带参数的构造方法

而类当中有构造方法,Java是不会自动生成构造方法的

构造方法中是可以构成方法的重载的

 

this()调用当前类当中的其他方法,只能在当前的构造方法内部使用,只能在第一行

封装:

将数据和数据操作的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开的接口来和对象进行交互

隐藏类的细节,从而达到安全性

 private修饰符,封装修饰过后的变量只可以在方法内使用,超出方法外使用就会报错,

 如果要给封装的变量初始化,就要另外给封装的变量提供一个方法,一个是get(修改值),一个是set(获取值)

 

 也可以使用快捷键,生成想要的方法,也可以生成构造方法

toString可以让你以一种可读的方式展现对象的状态

封装之包:

 

这个是java原生的类

 

 

 可以在原生类查看类在哪个包底下

 

 package是声明当前java文件是在哪个包底下,可以通过import进行导入

 如果两个类在同一个包底下,可以合并使用通配符(*)来导入,你的代码想使用谁,他就会导入谁

 

 如果两个包都存在有同名的类,就要把完整的类名写上,因为idear并不知道你要调用哪个包

 使用import static导入静态包中的方法和字段

 自定义包,包名一般是公司域名的颠倒,全部字母必须小写

 

 

 这里要设置把包打开,这里创建了一个包,包里面是3个文件夹,想往哪个文件夹写东西都是可以的,每个包底下都可以新建一个包

 在文件的最上方加上一个package语句指定该代码在哪个包,没有的话该类会被放在一个默认的包

static:静态“变量”,加上了static修饰之后的变量就不依赖对象,使用方法就是类名.修饰的变量名,不属于某个对象,是所有对象所共享的,且static方法是存储在方法区

生命周期跟随类,类销毁静态变量也会跟着销毁

 

 

 静态方法不需要实例话对象,且静态方法不可以直接调用非静态方法,静态方法里面不可以使用this,普通方法可以调用static方法,可以通过对象调用,也可以通过类名.静态方法名方式调用

 

代码块:

静态代码块,实例代码块,普通代码块,同步代码块,代码块都是在类里,

 

 

 

如果在一个类中同时有静态代码块,实例代码块,构造方法,会优先执行静态代码块,但调用同时调用同一个类静态代码块只会执行一次,多个静态代码块会按照先后顺序执行,

实例代码块只有在创建对象的时候才会执行

静态代码块只要类被加载就会被执行

 

posted @ 2024-09-26 16:11  油头男孩  阅读(4)  评论(0编辑  收藏  举报