首页 > 其他分享 >类和对象

类和对象

时间:2024-09-26 16:13:45浏览次数:1  
标签:调用 构造方法 对象 代码 静态 方法

什么是类?

什么是对象

 

 

在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(获取值)

 

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

封装之包:

 

这个是java原生的类

 

 

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

 

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

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

 

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

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

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

 

 

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

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

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

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

 

 

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

 

代码块:

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

 

 

 

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

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

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

 

标签:调用,构造方法,对象,代码,静态,方法
From: https://www.cnblogs.com/hzy7/p/18427818

相关文章

  • JavaScript对象方法
    对象方法已经讨论过hasOwnProperty(),propertyIsEnumerable()和isPrototypeOf()三个方法。以及静态函数,Object.create(),Object.getPrototypeOf()等。toString()方法无参数,返回一个表示调用这个方法的对象值的字符串。默认返回信息很少,例如对象:toLocaleString()方法该方......
  • JavaScript对象方法使用指南:成为对象操作达人
    ......
  • IDEA调试的时候怎么确认一个代理对象是cglib动态代理实现的还是jdk动态代理实现的
    在调试过程中,判断一个代理对象是通过CGLIB实现的还是通过JDK动态代理实现的,可以从以下几个方面入手:###1.检查代理对象的实际类型在IntelliJIDEA中,你可以使用调试工具查看对象的实际类型。JDK动态代理和CGLIB动态代理在对象类型上有显著区别:-**JDK动态代理**:代理对......
  • 【C++掌中宝】类和对象(一):类的定义和实例化
    文章目录引言1.什么是类?1.1类的定义1.1.1类定义格式1.1.2访问限定符1.1.3类域1.2类在编程中的作用——抽象与封装2.类的基本组成2.1成员变量:类的属性(变量)2.2成员函数:类的行为(函数)2.3完整代码示例3.什么是对象?2.1实例化2.1.1实例化概念2.1.2对象大小(内......
  • Day1 c++(发展历史,特点,面向对象核心术语,开发环境,新建项目,引用,窄化,输入,字符串,函数)
    1.C++发展历史(了解)1983年,贝尔实验室(BellLabs)的BjarneStroustrup发明了C++。C++在C语言的基础上进行了扩充和完善,是一种面向对象程序设计(OOP)语言。Stroustrup说:“这个名字象征着源自于C语言变化的自然演进”。还处于发展完善阶段时被称为“newC”,之后被称为“Cwi......
  • 【C++】面向对象编程的三大特性:深入解析继承机制
    C++语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C++相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C++内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriority......
  • 类和对象(2)(六个默认成员函数)
     个人主页:Jason_from_China-CSDN博客所属栏目:C++系统性学习_Jason_from_China的博客-CSDN博客所属栏目:C++知识点的补充_Jason_from_China的博客-CSDN博客类的默认成员函数概念概述默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。一个......
  • 在Scala中,如何判断两个对象相等,覆写类equals方法
    覆写类equals方法overridedefequals(other:Any):Boolean={true/false}图书馆借书如何判断两条记录是不是一个同学借的?//约定:两个人的名字一样,就是一个人!就是相等的!!classStu(varname:String){//override:改写,覆写,重写。把之前的覆盖掉overridedefequals(......
  • 嵌入式C语言自我修养:C语言的面向对象编程思想
    ⭐关联知识点:C和C++的区别代码复用与分层思想什么是代码复用呢?(1)函数级代码复用:定义一个函数实现某个功能,所有的程序都可以调用这个函数,不用自己再单独实现一遍,函数级的代码复用。(2)将一些通用的函数打包封装成库,并引出API供程序调用,实现了库级的代码复用;(3)将一些类似的应用程序抽象成......
  • ⭐ Unity 对象池的应用 Cube流星落
    此次Demo里生成一些Cube从天上往下掉,并且当它们掉到特定高度(例如y轴小于0)时销毁。为了优化性能,避免频繁创建和销毁物体,使用对象池(ObjectPooling)技术来复用这些Cube。先看一下效果观察Cube的生成Cube对象池 对象池管理器脚本usingSystem.Collections.Generi......