Java:类与对象概念

  • 什么是类?
  • 怎样定义一个类?
  • 什么是对象,类和对象之间是什么关系,怎样创建一个对象?
  • 对象引用和对象在内存中是如何分配的?

  • 什么是类?

1. 类是具有相同的属性和功能的事物的抽象的集合,在面向对象程序设计中,人们把一类事物的静态属性和动态可以执行的操作组合在一起就得到类这个概念。

2. 类是个抽象的概念,用来模拟一类事物,一旦定义了一个类,这个类就永远存在。

比如:人,人有男人和女人,他们都有身高,体重等相同的属性,他们都具有走路,吃饭,工作等这些相同的,可动态执行的操作,所以可以定义“人类”这样一个类来包含他们相同的属性和功能。


  • 怎样定义一个类?

在Java中,使用Class这个关键字来定义一个类,如下:定义一个Person类

 1 /**
 2     @author   zst
 3     @version  1.0
 4 */
 5 public class Person{
 6     private String name;
 7     private int age;
 8
 9     public void work(){
10
11     }
12 }

说明:  1. 类名称首字母要大写,如果要定义的类名称由多个单词组成,则每个单词的首字母都要大写

2. 如果是对外公开的方法需要用“public”关键字修饰

在上面Person类中:

1. name,age 称为类数据成员,或字段

2. work() 称为类的成员函数,或方法


  • 什么是对象,类和对象之间是什么关系,怎样创建一个对象?

1. 对象是类的一个个体,是具体的,实实在在存在的事物,它有自己的生命周期,由类可以创建出对象,对象也会消亡。

2. 类一旦被建立后,就可以用这个类创建出任意个对象,然后去操作这些对象,类是抽象的,对象是具体的。

3. 对象也叫实例,是一个真实的实体。

关系:  1. 如果把对象比作是实实在在存在一辆汽车,那么类就是这辆汽车的设计图纸,当然通过设计图纸(类)还可以制造第二辆,第三辆这样的汽车(对象)。

2. 如上,通过Person类可以创建出一个叫“小明”的对象,也可以创建出另一个叫“阿黄”的对象。

创建一个对象的过程也叫类的实例化,使用new关键字来创建对象。

 1 Person xiaoMing = new Perosn(); 

如上就是创建一个对象的过程:执行了两步操作:

1.Person xiaoMing:声明了一个叫xiaoMing的Person类的对象引用。

2. newPerosn():创建一个Person对象,此时xiaoMing指向创建出来的对象,也经常把xiaoMing称为对象名。


  • 对象引用和对象在内存中是如何分配的?
 1 /**
 2     @author   zst
 3     @version  1.0
 4 */
 5 class A
 6 {
 7     int i = 10;
 8     int j = 10;
 9     public static int k = 20;
10
11     public void f()
12     {
13         System.out.println("我是A类对象的方法");
14     }
15 }
16 public class ObjectMemoryAllocation
17 {
18     public static void main(String[] args)
19     {
20         A aa = new A();
21         aa.f();
22
23     }
24 }

  在上面代码中:A aa =new A(); 这行代码是创建对象的过程(类的实例化)。

A aa :声明对象的引用变量,这个变量是在栈(stack)内存中分配的,它存储着一个内存地址,该地址指向执行new A()后在堆中分配的一块内存。

new A(): 创建一个对象,该对象是在堆(heap)内存中动态分配的。

如下图:

注:

      1. new出来的对象都是在堆(heap)中分配的

      2. 局部变量(如对象引用变量)都是在栈(stack)中分配

3. 静态变量(被static修饰的变量)和字符串常量存储在数据段(Data Segtment)中

4. 代码段(Code Segment)中存放代码

来自为知笔记(Wiz)

时间: 2024-10-09 07:17:25

Java:类与对象概念的相关文章

java类,对象,方法

1,类和对象   在面向对象的概念当中,类(class)是既包括数据又包括作用于数据的一组操作的封装体.类的数据称为成员变量,类对数据的操作称为成员方法.成员变量反映类的状态和特征,成员方法反映类的行为和能力.类的成员变量和方法统称为类的成员.   对象(Object)是类的实例(instance).对象是动态的,拥有生命周期,都会经历一个从创建.运行到消亡的过程.对象与类的关系就像变量与数据类型一样.   类声明 { 修饰符 } class <Classname> { extends <

java类与对象的区别

java类与对象的区别是个老生常谈的问题,刚开始学java的时候就开始接触类和对象,今天来总结一下他们之间的区别. 首先讲讲class和object的区别,其实就是一句话:object是所有class的父类,所有class类都默认继承object. java中类是对一类"事物"的属性和行为一种抽象,比如人类就可以定义为一个Person类: public class Person { public int age;//年龄 public String name;//姓名 public i

有关java类、对象初始化的话题,从一道面试题切入

最近在整理东西时,刚好碰到以前看的一道有关java类.对象初始化相关题目,觉得答案并不是非常好(记忆点比较差,不是很连贯).加上刚好复习完类加载全过程的五个阶段(加载-验证-准备-解析-初始化),所以如果周志明大大诚不我欺的话,无论是类加载过程.还是实例化过程的顺序我都已经了然于心了才对. 一道面试题 标题:2015携程JAVA工程师笔试题(基础却又没多少人做对的面向对象面试题) 地址:https://zhuanlan.zhihu.com/p/25746159 该题代码如下: public cl

Java类与对象的课后练习

Java类与对象的课后练习编程题(java2实用教程P111) 这章内容自学完了,在做教材课后其他练习题的时候(只要自己仔细)都没啥问题,但在做最后一道上机编程题的时候问题出现了,在阅读题目的时候自己能感受到的是这道题不难(的确也不难),我也很快写了出来,但运行程序的时候,结果一直不正确,最后改来改去都不对,思路是对的,分步执行的时候也感觉是有个地方出了问题但就是揪不出来,最后又把课本的前面的例子反复的看对比,最后找到了问题: System.out.println("cpu的速度:"+

java类(Class)的概念;对象的概念,声明类的属性 和方法,

类(Class)的概念 类是对一组具有相同特征和行为的对象的抽象描述. 理解: [1] 类包含了两个要素:特性和行为 => 同一类事物具有相同的特征和行为. [2] 类是一个群体性概念.例如:网红.明星.草根.宅男.萝莉.沙雕 [3] 类可以理解为现实生活中所说的 “类型” 为什么会有类的概念? 现实生活中为了更好的区分事物,把事物进行归类,进而更好的认识事物. 在程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物 对象的概念 对象是类的具体实现,表示一个独立的.唯一的个体.

java类和对象的基础(笔记)

封装: 首先封装可以保护对象,防止用户直接存取对象的内部细节:其次封装也保护了客户端,防止对象实现部分的改变可能产生的副作用,即实现部分的改变不会影响到客户端的改变. 私有代码和数据仅能被对象本身的其他部分访问,不能被该对象外的任何程序部分所访问.当代码或数据是公有的时,虽然它们是定义在对象中的,但程序的其他部分也可以访问. 继承性体现了类之间的是一种(IS-A)关系. 类之间的关系还有组合.关联等. 类的修饰符 : 类的访问修饰符可以是public或者缺省.若类用public修饰,则该类称为公

JAVA 类与对象

一.类 1.类的定义 类就是把数据与相关功能封装在一起,形成一种特殊的数据结构 2.类的特点 (1)类是对象的类型 (2)具有相同属性和方法的一组对象的集合. (3)同一个Java程序内,若定义了多个类,则最多只能由一个类声明为public,在这种情况下,文件名必须与声明称public的类名称相同 3.对象的属性: 对象具有的各种特征. 4.对象的方法: 对象执行的操作(能干什么). 5.类和对象的关系 类是抽象的概念,仅仅是模板.而对象是一个具体实体. 二.定义类 1.类的一般结构 三.对象的

【好程序员特训营】Java类与对象

Java支持以下类与对象的概念: 多态.继承.封装.抽象.类.对象.实例.方法. 就像是书.也可以分为语文书.数学书.历史书什么的,每本书又有不同的内容. 一个简单的雇员的例子: Employee类有四个成员变量:name.age.designation和salary.该类显式声明了一个构造方法,该方法只有一个参数. public class Test { public static class Employee{ String name; int age; String design; dou

JAVA类与对象(一)

面向对象基本概念 面向对象是一种新兴的程序设计方法,或者说是一种新的程序设计规范,其基本思想是使用对象.类.继承.封装.消息等基本概念来进行程序设计.它是从现实世界客观存在的事物(即对象)出发来构造软件系统的,并且在系统构造中尽可能运用人类的自然思维方式. 对象:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位.对象由属性和对属性进行操作的一组服务组成. 类:把众多是事物归纳.划分成一些是人类在认识客观世界时经常采用的思维方式.分类的原则是抽象的.类是具有相同属性和服务的一组对