-
2019-02-21 23:14:27
对象,类与接口
内部类
一个类定义在另外一个类的内部,分为成员内部类(定义在外部类的成员位置)和局部内部类(定义在外部类的方法里面)
成员内部类
class Outer{ class Inner{} }
成员内部类的特点
1、成员内部类可以直接访问外部类的成员,包括私有的,也可以通过外部类名.this.成员名调用外部成员
2、外部类访问非静态成员内部类的成员,必须要创建成员内部类对象;外部类可以通过类名直接访问静态内部类的静态成员,包括私有的
3、成员内部类和外部类不存在继承关系
4、其他类中生成成员内部类的方式:Outer.Inner oi = new Outer().new Inner();局部内部类
class Outer{ public void method(){ class Inner{} } }
局部内部类特点
1、可以直接访问外部类的成员
2、在局部位置可以创建局部内部类对象,通过对象调用成员
注意:局部内部类在访问局部变量时,被访问的变量必须用 final 修饰,因为局部变量随着方法调用完毕就消失了,而内部类在堆内存中并不会立即消失匿名内部类
抽象类
接口java对象生命周期
创建阶段(Created)
为对象分配存储空间
开始构造对象
从超类到子类对static成员进行初始化
超类成员变量按顺序初始化,递归调用超类的构造方法
子类成员变量按顺序初始化,子类构造方法调用
应用阶段(In Use)
至少被一个强引用持有着
不可见阶段(Invisible)
程序块本身不再持有该对象的任何强引用,如超出作用域
不可达阶段(Unreachable)
该对象不再被任何强引用所持有
收集阶段(Collected)
处于“不可达阶段”并且垃圾回收器已经对该对象的内存空间重新分配做好准备。如对象重写了finalize(),则跳过此阶段
终结阶段(Finalized)
对象执行完finalize()方法后仍然处于不可达状态
对象空间重分配阶段(De-allocated)
垃圾回收器对该对象的所占用的内存空间进行回收或者再分配了,该对象彻底消失java类生命周期
初始化
如果一个类被直接引用,就会触发类的初始化。
直接引用的情况有:
通过new关键字实例化对象、读取或设置类的静态变量、调用类的静态方法
通过反射方式执行以上三种行为
初始化子类的时候,会触发父类的初始化
作为程序入口直接运行时(也就是直接调用main方法)
除以上四种情况,其他使用类的方式叫被动引用,不会触发类的初始化
卸载
在类使用完之后,如果满足下面的情况,类就会被卸载
该类所有的实例都已经被回收,也就是java堆中不存在该类的任何实例。
加载该类的ClassLoader已经被回收
该类对应的java.lang.Class对象没有任何地方被引用,无法在任何地方通过反射访问该类的方法匿名对象
没有名字的对象
使用场景
适用于一个对象只使用一次的场景
好处
匿名对象使用完毕就变成垃圾被回收
注意
匿名对象可以作为实际参数传递
用法
new Person().show();
可实例化抽象类或接口public abstract class Person{ public abstract void work(); } new Person(){ public void work(){ System.out.println(“work”); } }.work();
成员变量和局部变量的区别
A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 D:初始化值不同 成员变量:有默认初始化值 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用
更多相关内容 -
类与对象基础回顾,类和对象概念,关系,类的定义以及使用,简单代码的编写
2021-02-13 21:06:14在之前的学习中我们认识了for循环,今天温习的知识是有关类与对象这些方面的知识,在这里我们将学习到类与对象的概念,类与对象的关系,类的定义与使用,成员变量与局部变量 以下是本篇文章正文内容,下面案例可供...
前言
在之前的学习中我们认识了for循环,今天温习的知识是有关类与对象这些方面的知识,在这里我们将学习到类与对象的概念,类与对象的关系,类的定义与使用
以下是本篇文章正文内容,下面案例可供参考
一、类与对象
在学习类与对象之前我们要了解Java中的面向对象
面向过程:具体的,流程化的,强调的是每一个功能的步骤
面向对象:强调的是对象,然后由对象去调用功能那么类和对象又是什么呢?
类:十一组相关属性和行为的集合,可以看做是一类事物的模板,使用事物的属性特征和行为特征来描述该事物
对象:是一类事物的具体体现,对象是类的一个实例,必然具备该事物的属性和行为那么问题又来了,什么是属性而什么是行为呢?
属性(可以看作名词):该事物的状态信息,例如:一只猫的品种,颜色
行为(可以看作动词):该事物的行为信息,例如:一只猫会抓老鼠,爱吃鱼补充!
在类中的成员变量就是属性,而成员方法则为行为
二、对象与类的关系以及使用
1.类与对象的关系
- 类是对一类事物的描述,是抽象的
- 对象是一类事物的实例,是具体的
- 类是对象的模板,对象是类是实例
2.类的定义格式
public class ClassName{ //成员变量 //成员方法 }
3.类的使用
类是一种引用数据类型,使用有三个步骤
- 导包(找到要使用的类)
java.long下的包不需要导包可以直接使用
导包格式:importxxx.xxx类名 - 创建对象
类的对象的创建
类名 对象名 =new 类名() - 对象的使用
对象名称.成员方法名称
小贴士:
导包快捷键:alt+回车
当前的类和使用的类在同一个包中不需要导包
(对象名称.成员方法名称中“.”)意思是xxx的yyy三、代码体现
题目为:定义手机类,手机有品牌(brand),价格(price)和颜色(color)三个属性,有打电话call()和sendMessage()两个功能。
定义测试类,在主方法中创建对象,直接给对象的属性赋值。
调用对象的两个功能,打印效果如下:
正在使用价格为3998元黑色的小米手机打电话.... 正在使用价格为3998元黑色的小米手机发短信....
那么首先我们先定义一个手机类
public class Phone { String brand;//品牌 int price;//价格 String color;//颜色 public void show(){ System.out.println("正在使用价格为"+price+"元"+color+"的"+brand+"的手机打电话"); } public void show2(){ System.out.println("正在使用价格为"+price+"元"+color+"的"+brand+"的手机发短信"); } }
接下来定义测试类
public class PhoneTest { public static void main(String[] args) { Phone p=new Phone();//创建对象 p.color="黄色"; p.price=5966; p.brand="华为";//直接赋值 p.show(); p.show2();//调用对象p的两个功能 } }
到这里基础类与方法的讲解就结束啦,感谢大家的耐心观看.
如有不足,欢迎指出,共同进步!- 文章版权归作者所有,欢迎转载
-
类与对象的区别?
2018-08-13 09:35:36对于初学者来说,类与对象之间的关系的非常模糊不清的,在这里跟大家分享一下,让初学者有所帮助。 一、类的概念: 类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其...对于初学者来说,类与对象之间的关系的非常模糊不清的,在这里跟大家分享一下,让初学者有所帮助。
一、类的概念:
类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。
二、对象的概念:
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角 度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。
三、类与对象的关系:
类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性(属性)和相同行为(方法)的对象。
四、类与对象的区别:
1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。
2,对象是类的一个具体。它是一个实实在在存在的东西。
3,类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。
4,对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。
作者:Roger_CoderLife
链接:https:blog.csdn.net/Roger_CoderLife/article/details/81565683
本文为Roger_CoderLife的原创文章,著作权归作者所有,转载请注明原文出处,欢迎转载!
-
类和对象(一)——类&对象概念及定义
2018-05-22 00:09:19c是面向过程的语言一、面向对象概念:面向对象程序设计(OOP)是一种程序设计的泛型,同时也是一种程序开发的方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性二、类和...c++是基于面向对象的语言,并不是纯面向对象的语言,因为它包含c的部分,c是面向过程的语言
一、面向对象
概念:面向对象程序设计(OOP)是一种程序设计的泛型,同时也是一种程序开发的方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性
二、类和对象的概念
1. 类:类是现实世界在计算机中的反映,它将数据和对这些数据的操作封装在一起(并没有开空间)
2. 对象:类的实例(占有实际的空间)
class Student //类 { public: Student() {} private: int _num; char* _name; int _age; }; int main() { Student s; //对象-> 类的实例 system("pause"); return 0; }
1)类相当于盖楼房的图纸一样,虽然定义了有哪些成员,但并没有实际的空间
2)类可以实例化出多个对象,实例化出的对象占有实际空间(用来存储成员变量)
三、类的三大特性:
1.封装 2.继承 3.多态
封装:函数的封装是一种形式,隐藏对象的属性和实现细节(函数内部),仅仅对外提高函数的接口和对象进行交互。
类的访问限定符可以协助其完成封装
四、类的三个访问限定符
1.public:公有的,类的成员可以从类外直接访问
2.private/protected:类的成员不能从类外直接访问
3.类的每个访问限定符可以多次在类中使用,作用域为从该限定符开始到下一个限定符之前/类结束
4.类中如果没有定义限定符,则默认为私有的(private)
5.类的访问限定符体现了类的封装性
因为_name是私有的,所以在类外不能使用,而_age,Eat()是公有的,所以在类外可以直接使用
五、类的定义
1.定义一个简单的类
2.类的对象可以直接通过 . 来访问类的公有成员,类的对象指针可以通过->来访问类的公有成员
class person { public: void Display() { cout << _name <<"-"<< _age << endl; } public: int _age; char* _name; }; int main() { person p; p._age = 18; p._name = "peter"; p.Display(); person* ptr = &p; ptr->_age = 20; ptr->_name = "jack"; ptr->Display(); system("pause"); return 0; }
3.类外定义成员函数,需要使用::(作用域解析符)指明其属于哪个类
class person { public: void Display(); //声明 }; void person::Display()//类外定义 { //...... }
六、类的大小
类的成员函数放在公共代码区,所有该类的对象共享这些成员函数,每个对象的大小为类内成员变量的大小之和,遵循内存对齐原则
1.为什么要内存对齐?
答:为了提高程序的性能,方便cpu访问内存,处理器并不是一个字节一个字节来访问内存,一般是4个字节或8个字节
2.空类占多少个字节?为什么?
答:空类占1个字节,占位用,告诉系统我这里定义了一个类,虽然它是空的
-
Java中类与对象的定义与使用
2018-10-31 20:38:54类与对象的概念 0. 面向对象的三大特征 0.1 封装性 把客观事物封装成抽象的类,每个类都有自己的属性与方法,并且类可以让自己的数据和方法只让可信的类或对象操作,对不可信的进行信息隐藏。内部操作对外部而... -
编程语言-go:类与对象的概念
2019-01-20 16:20:55go中没有类和对象的概念,只有struct和变量与之对应 1,定义“类”: struct type Books struct{ title string author string id int } 2, 创建“对象”: 变量 var book1 Books book1.title=&... -
面向对象:类的概念和定义!
2018-05-28 10:16:37面向对象的概念: 对象: Object,含有“物体”的概念,一切皆物体(对象)。对象由静态的属性和动态的行为组成。 属性:行为:存储、保温 类: 一组具有相同属性和行为的对象的抽象。杯子: ... -
Java类和对象 详解(一)
2016-10-06 20:48:02一、面向对象简述面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计... -
Java中类和对象的概念
2018-06-01 23:50:23Java是一门面向对象的编程语言(OOP),想要理解Java,首先要理解类(Class)和对象(Object)这两个概念。Java中的类可以看成C语言的结构体的升级版。结构体是一种构造数据类型,可以包含不同的成员(变量),每个成员... -
Java面向对象 - 类与对象
2021-01-16 10:07:03类:类是一个模板,它描述一类对象的行为和属性。 对象:对象是类的一个实例,有 属性 和 行为 。 举个例子: 人是一个 “类”,小明就是人的 “对象” ,女生/男生是一个类,你的女朋友/男朋友就是一个对象,这个... -
C++对象和类概念
2017-11-25 12:18:121、对象和类概念 对象:实体,真实存在的个体。 编译器为之分配空间的变量。 特征属性,行为。 类: 具有共性的实体的抽象。 自定义的数据类型 struct stu { int age; }; struct stu xiaoming;... -
面向对象基本概念
2019-02-06 21:56:15类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。对象即为人对各种具体物体抽象后的一个概念,人们每天都要接触各种各样的对象,如手机就是一个对象。 面向... -
编程中类、对象的概念
2017-10-06 16:50:23以最直白的例子解释编程中类、对象、类的属性、方法、继承的概念,并说明了面向对象编程的优点,点出面向对象编程和面向过程编程的区别 -
java中类与对象的关系与区别
2019-04-08 15:25:541,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。 2,对象是类的一... -
1.2Java基础(二)面向对象(类和对象概念、封装、继承、多态)
2021-05-13 19:43:30类和对象 类 对象 电脑类 我的机械革命 汽车类 1949红旗 人类 乔布斯,比尔盖茨,马化腾 类:对于一类事物的统称,对当前事务的一些描述,属性描述和行为描述 对象:独立,唯一,特殊的个体 Java中定义类的... -
Python 类与对象
2019-04-10 16:49:40类与对象的理解与封装特性 面向对象编程语言 - 类: 一个模板, (人类)---是一个抽象的, 没有实体的 - 对象: (eg: 张三, 李四) - 属性: (表示这类东西的特征, 眼睛, 嘴巴, 鼻子) - 方法: (表示这类物体可以... -
第一章 类和对象的概念及应用
2017-07-23 14:41:49本课程主要讲解了C#中关于类的概念以及对象的概念,他们二者之间的关系。通过实际操作和演示。并对类和成员之间的访问修饰符进行了深度的讲解。 -
实体、对象与类的概念
2016-05-04 07:03:04面向对象系列 什么是实体? 指客观世界存在的某个事物 如何描述实体? 通过对实体进行抽象,来描述实体 如何抽象描述实体 每个实体都有其特征和功能,特征和功能通称为属性 实体与实体的不同在于属性的不同 所谓... -
Python中的类和对象是什么
2021-01-29 04:51:23二、类和对象1、类的概念面向对象编程的2个非常重要的概念:类和对象是面向对象编程的核心。在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念——类。(1)类是对象的模板,... -
什么是类?什么是对象?类与对象之间是什么关系?类的特性有哪些?
2021-08-02 10:57:53对象的抽象就是类,类的具体化就是对象,也可以说类的实例化就是对象,类实际上就是一种数据类型。类具有属性用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。 二... -
类与对象的关系
2018-09-03 11:34:58简单记录一下类与对象的关系,问题不难,但觉得还是写出来,会帮助自己记忆更牢固,而且万一以后有需要,可以及时回顾。 参考文献: 类与对象的区别 Java类和对象 详解(一) Java类和对象 详解(二) 声明对象、... -
什么是类?对象?类与对象的关系是什么?
2019-06-02 14:56:30对象 什么是对象? ...万物皆对象。它包括现实中客观存在的事物,也包括抽象的时间、规则、思维。简单点说,对象具有状态、...具有相同特性和行为的对象组成的集合就是类... -
面向对象程序设计的基本概念(对象、类、封装等)
2020-10-18 20:59:44在面向对象程序设计中,设计了对象、类、封装、继承、消息传递和多态等基本概念,下面就分别来谈谈这些概念: 对象(object):好比一个人,有多种属性:姓名、性别、年龄、体重等,都有多种行为:吃饭、走路等,... -
面向对象的基本概念
2021-08-02 05:19:12面向对象的基本概念来源:信管网2018年07月20日 【所有评论】面向对象的基本概念包括对象、类、抽象、封装、继承、多态、接口、消息、组件、复用和模式等。(1)对象:由数据及其操作所构成的封装体,是系统中用来描述... -
混淆概念详细解析:Python中类、对象、方法、函数和属性的区别和理解
2020-07-21 17:05:13Python中类、对象、方法、函数和属性的区别和理解前言一、类、对象、方法、函数和属性的区别和理解二、一个类的简单案例和对各种概念的理解 欢迎学习交流: zengf.hou@bit.edu.cn 前言 相信很多刚刚初学 python 的... -
PHP面向对象概念
2018-09-12 15:26:44一、面向对象的概念 1、面向对象实现了软件工程的三个目标:重用性、灵活性和扩展性 2、使其编程的代码更简洁,更易于维护,并且具有更强的可重用性 3、面向对象的特点: 封装:隐藏对象的属性和实现细节... -
C#中类和对象的详解
2020-06-01 22:56:42目录:一、什么是类二、类的作用三、什么是对象四、类与对象的关系五、类的组成六、如何创建类七、类的访问修饰符八、类中的成员以及访问方式九、类为什么要实例化 一、什么是类 定义一个类时,相当于定义了一个数据... -
面向对象:类与对象之间的关系
2019-01-23 00:52:02对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所以对象是一个具体的概念。 类是对象的一个集合,对象是类的实例。 而对象的产生在Java中是使用new来... -
java中类和对象的概念
2019-02-15 10:59:29学习一门编程语言,就要理解里边的概念,java是一门面向对象的语言,什么是面向对象呢,一下用例子说明。 大家可能都对王者荣耀(下面简称“王者”)这个游戏有点了解,就算没玩过,也听身边的亲朋好友说过。 ... -
前端面试基本---理解 “类“和 “对象
2021-05-10 09:54:03在 ES6 中新增加了类的概念,可以使用 class 关键字声明一个类,之后以这个类来实例化对象。 类抽象了对象的公共部分,它泛指某一大类(class)对象特指某一个,通过类实例化一个具体的对象 类,对象,面向对象...