二、类和对象

1.类和对象的概念
类:是一个具有特殊功能的实体的集合【群体】,【类是Java语言的最基本单位】
对象:在一个类中,一个具有特殊工能的实体,能够帮忙的解决某些特定的问题,对象也被称为实例

两者之间的关系:
类是用于描述某一类事物的共同特征,对象则是类的具体的存在【包含关系】

举例:
类 对象
人 某一个人
快递 邮政,中通

总结:
a.累世对象的抽象,对象是类的具体的实现
b.Java中描述事物通过类的形式体现,类是具体事物的抽象,队象是类的实实在在的存在

因为类是引用数据类型,我们可以把类当作一种自定义的数据类型,可以使用类来定义变量,我们把这种类型的变量统称为引用型的数据类型

2.如何来声明一个类
语法:
访问权限修饰符 class 类名{
//类体;
}
说明:
a.访问权限修饰符:只能使用public【public可以省略,当public省略之后,其实有一个默认的访问修饰符default,但是default不需要写出来】
b.使用class关键字【声明】一个类
c.类名需要是一个合法的标识符,首字母大写一个【大驼峰】
b.尽量使用单个或者多个有意义的英文单词链接起来

注意:
a.在一个Java文件中可以写多个类,如果写了多个类,编译完成之后会生成多个class文件
b.一个Java文件中只能最多有一个被public修饰的类,如果使用了public修饰,Java文件名称必须和这个类名保持完全一致
c.一个Java文件中,所有类都可以不适用public修饰,类名和文件可以不一致,但是,如果这个类中有main函数,一般将文件名和这个类名保持一致

3.类中成员变量和方法的定义
1>成员变量
a.其实就是全局变量
b.成员变量也被称为属性
c.分为静态成员变量和非静态成员变量
d.在静态方法中只能访问静态成员变量,在非静态方法中可以同事访问静态成员变量和非静态成员变量

总结:成员变量【全局变量】和局部变量的区别【面试题】
a.定义的位置不同
成员变量:定义在类中,作用与整个类
局部变量:定义在方法或者语句中,作用与该方法或者该语句
b.内存中出现的时间和位置不同
成员变量:当对象被创建的时候,出现在堆空间中【非静态】
局部变量:当对应所属的区域被执行时,出现在栈空间中
c.生命周期
成员变量:随着队象的创建而出现,随着对象的消失而消失【非静态】
局部变量:所属区域被执行完成之后,会立马消失
d.初始值不同
成员变量:当定义成员变量的时候,可以不赋初始值,系统会自动分配
局部变量:没有默认初始值,如果要在后面代码中使用,必须手动赋初始值

2>成员方法
a.分为静态方法和非静态方法
b.在同一个类中,在静态方法中只能调用静态方法,在非静态方法中可以调用静态方法和非静态方法
成员变量:类具有的特征
成员方法:类具有的行为

4.对象的创建
对象的创建过程也被称为实例化过程
语法:类名 变量名称 = new 类名();

总结:
前提条件:在不同类中
a.静态成员方法和静态成员变量是属于类的,访问的时候采用 类名.方式 或者对象.方式
b。非静态成员方法和非静态成员变量是属于对象的,访问的时候采用 对象.方式

5.方法的重载【Overload】
在同一个类中,如果满足以下的条件时,我们就称为这几个方法之间彼此重载
a.方法名相同
b.参数不同【数量不同,类型不同】
c.与返回值没有关系

静态成员变量和非静态成员变量对比:

1:访问方式
非静态成员变量通过对象调用
静态成员变量可以通过对象调用也可以通过类名调用
2: 存储数据
非静态存储的数据对只能通过对象访问
静态存储的数据对所属类的所有对象共享
3:存储位置
飞静态成员变量是随着对象的创建在堆中开辟内存
静态成员变量是随着所属类的加载同时在方法去中的静态区中开辟内存
4:生命周期
非静态成员变量是当对象调用是被在堆中开辟内存,当对象不在指向它时等待垃圾回收机制回收

时间: 2024-08-17 21:43:19

二、类和对象的相关文章

Java复习(二)类与对象的基本概念

2.1面向对象的程序设计方法概述 对象 程序中: 一切皆是对象 都具有标识,属性和行为 通过一个或多个变量来保存其状态 通过方法实现他的行为 类 将属性及行为相同或相似的对象归为一类 类可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为 在面向对象的程序设计中,每一个对象都属于某个特定的类 2.1.1抽象 过程抽象 数据抽象 2.1.2封装 2.1.3继承 Java仅支持单继承 2.1.4多态 2.2类与对象 2.2.1类的声明 声明形式 [public] [abstract|final

Objective-C 笔记二 类、对象和方法

对象就是一个物件.面向对象的程序设计可以看成一个物件和你想对它做的事情.这与C语言不同,C语言通常称为过程性语言.在C语言中,通常是先考虑要做什么,然后才关注对象,这几乎总是与面相对象的思考过程相反. 在面向对象的用语中,(这里我们以汽车作为对象)你的汽车是汽车的一个实例.car就是类的名称,这个实例就是从该类创建的.因此,每制造一辆新汽车,就会创建汽车类的一个新实例,而且汽车的每个实例都称为一个对象. 对象 使用对象执行的操作 你的汽车 驾驶 加油 洗车 维修 每个实例或对象不仅包含从制造商那

C++笔记二:类和对象

类和对象 1:面向对象基础 2: 定义类和对象 3: 类和对象的使用 4: 构造函数和析构函数 5: this指针和复制构造函数 6: static静态成员 7: const对象和const成员 8: friend友元 ---------------------------------------------------------------------------------------------------------------------- (1)面向对象基础 一.什么是面向对象程序

PHP 类与对象 全解析( 二)

目录 PHP 类与对象 全解析( 一) PHP 类与对象 全解析( 二) PHP 类与对象 全解析(三 ) 7.Static关键字 声明类成员或方法为static,就可以不实例化类而直接访问.不能通过一个对象来访问其中的静态成员(静态方法除外). 静态成员属于类,不属于任何对象实例,但类的对象实例都能共享. 小结: 在类内部访问静态成员属性或者方法,使用 self::(没有 $ 符号),如:  self:: $country  //类内部访问静态成员属性  self:: myCountry()

C++中的类和对象(二)

一,对象的动态建立和释放 1.什么是对象的动态建立和释放 通常我们创建的对象都是由C++编译器为我们在栈内存中创建的,我们无法对其进行生命周期的管理.所以我们需要动态的去建立该对象,因此我们需要在堆内存中创建对象和释放对象.在C语言中为我们提供了malloc()函数和free()函数来为我们提供在堆内存中分配变量的方式,但是在C++中引入了new和delete关键字来让我们动态的创建和释放变量. 2.new和delete关键字 new关键字是用来在堆内存中创建变量的,格式为:Type * ptr

oc语言学习之基础知识点介绍(二):类和对象的进一步介绍

一.类.对象在内存中的存储 /* 内存分区: 栈:局部变量 堆:程序员自己写代码申请开辟的 程序员自己维护,编译器现在帮我们自动优化了,它在合适的给我们加上了释放空间的语句,所以我们现在写的对象不会造成内存泄露 全局区:所有的全局变量和静态变量 常量区:所有的常量 代码区:程序编译后的指令集 类是模板,肯定需要存在内存里面,因为实例化对象的时候需要根据这个模板来创建,那么存在内存里面,存在哪呢?? 类模板存在:全局区! 存的是:类的描述,还有所有的方法实现 每个对象都会有一个系统给我们的isa指

java基础(二)-- 类、对象

一.类:通过封装其他数据类型达到创建新的数据类型的目的.在类里面可以包含基本数据类型和非基本数据类型 1.java语言的源代码是以类为单位存放在文件当中的. 2.类的主体当中变量有两个正式的名字:属性和成员变量. 3.创建类的引用(声明一个类的变量):类名 + 空格 +类变量名 4.创建一个类的对象(创建一个类的实体): new + 空格 + 类名 + ().创建实体过程中,让3中声明的类的变量指向这个实体. 5.由于创建的引用指向类的实体,所以变量代表了类的对象.使用类中的属性时,可以直接使用

二维数组 面向对象编程的概念、 类、对象以及引用 和成员方法

1.二维数组(熟悉)1.1 基本概念 一维数组本质上就是一段连续的存储单元,用于存放多个类型相同的数据内容. 二维数组本质上就是由多个一维数组组成的数组,也就是说二维数组中的每个元素都是一维数组,而一维数组的每个元素才是具体数据内容. 1.2 二维数组的声明(1)语法格式 数据类型[][] 数组名称 = new 数据类型[行数][列数];如: int[][] arr = new int[2][5]; - 声明一个具有2行5列元素类型为int的二维数组 其中行下标的范围是:0 ~ 1: 其中列下标

类和对象(二)

对象的自身引用是面向对象程序设计语言中特有的.十分重要的一种机制.在C++中,为这种机制设立了专门的表示:this指针变量. 在类的每一个成员函数的形参表中都有一个隐含的指针变量this,该指针变量的类型就是成员函数所属类的类型. 当程序中调用类的成员函数时,this指针变量被自动初始化为发出函数调用的对象的地址. 例如: 123456789101112131415161718 #include <iostream>using namespace std;class Sample{ int x

二、类与对象(上)

从本节开始,介绍C#面向对象编程的基本内容. 与使用C语言等结构化编程语言不一样,使用C#编程,所有的程序代码几乎都放在类中,不存在独立于类之外的函数.因此,类是面向对象编程的基本单元. 在绝大多数面向对象语言中,一个类都可以包含两种成员:字段(Field)与方法(Method).字段与方法这两个概念是面向对象理论的术语,是通用于各种面向对象语言的.而在各种的具体面向对象语言(比如C#)中,可以简单的这样理解: 字段即变量,方法即函数. 类的字段一般代表类中被处理的数据,类的方法大多代表对这些数