【Java SE】面向对象、类和对象详解

  • Post author:
  • Post category:java



目录


1面向对象简述


1.1面向对象定义


1.2面向对象特征


1.3面向对象优点


2类与对象


2.1类与对象的概念


2.2类和对象的区别


2.3在Java中的定义和使用


2.4注意事项


3对象引用传递精髓


4内存垃圾


1面向对象简述

1.1面向对象定义

面向对象: Java是一门

纯面向对象

的语言(Object Oriented Program,继承OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要

依靠对象与对象之间的交互

完成一件事情。

1.2面向对象特征

在面向对象定义之中,也规定了一些基本的特征:

(1)封装:

保护

内部的操作不被破坏

(2)继承:在原本的基础之上继续进行

扩充


(3)多态:在一个指定的范围之内进行

概念的转换


1.3

面向对象优点

用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。因为面向对象,更多的是要进行

子模块化

的设计,每一个模块都需要

单独存在

,并且可以被

重复利用

,所以,面向对象的开发更像是一个具备标准的开发模式。


2类与对象

类与对象是整个面向对象中最基础的组成单元。

2.1类与对象的概念




:是抽象的概念集合,表示的是一个

共性

的产物,类之中定义的是属性和行为(方法)


对象

:对象是一种

个性

的表示,表示一个独立的个体,每个对象拥有自己独立的属性,

依靠属性来区分不同对象


类中包含的内容称为类的成员。

属性:

主要是类的变量,称之为类的成员属性或者类成员变量。

行为:

主要说明类具有哪些功能,称为类的成员方法。


理解:

简单来说,定义了一个类,就相当于在计算机中定义了一种新的类型,与int,double类似,只不过int和double是java语言自带的内置类型,而类是用户自定义了一个新的类型。

1. 类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员.

2. 类是一种自定义的类型,可以用来定义变量.

3. 一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间,存储类成员变量

2.2类和对象的区别

一句话总结:类是对象的


模板


,对象是类的


实例

类通过对象才可以使用,但开发之中应该

先产生类之后再产生对象

类不能直接使用,对象可以直接使用。

2.3在Java中的定义和使用

类,使用关键字class完成。

class 类名称 {
         属性 (变量) ;
         行为 (方法) ;
}

范例:定义一个Person类

class Person {     // 类名要 大驼峰
    String name ;  //姓名
    int age ;      //年龄
    public void print() { //方法
          System.out.println("姓名:" + name + ",年龄:" + age) ;
    }
} 

类定义完成之后,依旧无法直接使用。如果要使用,必须创建对象。

通过类创建对象的过程,称为类的实例化

,在java中采用new关键字,配合类名来实例化对象。


类是引用数据类型,实例化对象有两种方式:(在人这个类中定义女人这个对象)

(1)方式一:声明并实例化对象(一步)

//类名称 对象名称 = new 类名称 () ;
Person women = new Person();

(2)方式二:先声明对象,然后实例化对象(两步)

    //类名称 对象名称 = null ;
    //对象名称 = new 类名称 () ;
Person women = null;
women = new Person();

引用数据类型(类)与基本数据类型(int)最大的不同在于:引用数据类型需要内存的分配和使用。所以,

关键字new的主要功能就是

分配内存空间


,也就是说,只要使用引用数据类型,就要使用关键字new来分配内存空间。任何情况下,只要看见关键字new,都表示要分配新的堆内存空间,一旦堆内存空间分配了,里面就会有类中定义的属性,并且属性内容都是其对应数据类型的默认值。

当一个实例化对象产生之后,可以按照如下的方式进行类的操作:

(一)对象.属性:表示调用类之中的属性;

 women.name = "马冬梅" ;//操作属性内容

(二)对象.方法():表示调用类之中的方法。

 women.print() ;//调用类中的print()方法

范例:使用对象操作类

class Person {     // 类名要 大驼峰
    String name ;  //姓名
    int age ;      //年龄
    public void print() { //方法
          System.out.println("姓名:" + name + ",年龄:" + age) ;
    }
} 

public class Test{
        public static void main(String args[]) {
            Person women = new Person() ;// 声明并实例化对象
            women.name = "马冬梅" ;//操作属性内容
            women.age = 30 ;//操作属性内容
            women.print() ;//调用类中的print()方法
        }
}

运行结果:    姓名:马冬梅,年龄:30

2.4注意事项

  1. 一般一个文件当中只定义一个类
  2. public修饰的类必须要和文件名相同
  3. main方法所在的类一般要使用public修饰 (注意:Eclipse默认会在public修饰的类中找main方法)
  4. 不要轻易去修改public修饰的类的名称。


3对象引用传递精髓

引用传递的精髓:

1、同一块堆内存空间,可以同时被多个栈内存所指向

2、不同的栈可以修改同一块堆内存的内容。

4内存垃圾

内存垃圾:指的是在程序开发之中没有任何对象所指向的一块堆内存空间,这块空间就成为垃圾,所有的垃圾将等待

GC(垃圾收集器)不定期自动进行回收与空间的释放。



版权声明:本文为m0_65601072原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。