java基础-什么是面向对象,作用,设计对象并使用,封装,this关键字,构造方法,标准JavaBean,对象内存图,成员变量、局部变量的区别

一、什么是面向对象

java是一种面向对象的编程语言,而面向对象是一种编程思想和方法,

它将数据和操作数据的方法组合在一起,形成一个对象,然后通过对象之间的交互实现程序的功能。

1、java中面向对象的思想主要包含以下几个方面:

1、封装:将属性和方法封装成一个类,并且对外只暴露必要的接口,隐藏内部实现细节,以提高安全性和可维护性。

2、继承:通过继承,子类能够继承父类的属性和方法,从而简化代码,提高可重用性。

3、多态:通过多态性,同样的方法可以被不同的对象调用和执行,从而提高了代码的灵活性和可扩展性。

4、抽象:通过抽象,隐藏方法的具体实现细节,只保留方法的声明,提高代码的可读性和可维护性。

2、为什么要用面向对象(它的作用)

1、更好的代码重用性:通过继承和多态性,可以更容易地重用已有的模块,从而节省时间和开发成本。

2、更好的可维护性:面向对象编程可以将系统模块化、封装和抽象,隐藏内部实现细节,从而降低了系统的复杂度,易于修改和维护。

3、更好的扩展性:面向对象编程使得系统易于扩展,通过继承和多态可以方便地增加新的功能。

4、更易于理解:由于面向对象编程强调模块化和封装,使得代码更易读、易懂。开发人员可以将系统分解成多个独立部分,每个部分都有自己的职责和行为。

5、更好的代码复杂度管理:面向对象编程可以将大的复杂问题拆分成多个小的问题,有利于进行分布实现和管理。

二、设计对象并使用

在java中要根据设计图来实现代码程序,而java中的类就代表设计图。

1、类和对象是什么?

类(设计图):是对象共同特征的描述。

对象:是真实存在的具体东西。

在java中,必须先设计类,才能获得对象。

2、如何定义类?

定义:

public class 类名{

  1、成员变量(代表属性,一般是名词);

  2、成员方法(代表行为,一般是动词);

  3、构造器;

  4、代码块;

  5、内部类;

}

例如:

3、如何得到类的对象?

类名 对象名=new 类名();

4、如何使用对象?

访问属性:对象名.成员变量

访问行为:对象名.方法

5、定义类的补充注意事项

。用来描述一类事物的类,专业叫做:JavaBean类。

在javabean类中,是不写main方法的。

。标准的javabean类:

  • 类名需要见名之意
  • 成员变量使用private修饰
  • 提供至少两个构造方法(无参有参)
  • 成员方法,提供每一个成员变量(属性)对应的setXX()和getXX(),如果还有其他行为,也需要写上。

。在以前,编写main方法的类,叫做测试类。

我们可以在测试类中创建javabean类的对象并进行赋值调用。

。类名建议采用驼峰命名方

。一个java文件中可以定义多个class类,但是只能有一个class类是用public修饰,而且public修饰的类名必须成为代码文件名。

实际开发中建议还是一个文件定义一个class类。

。成员变量的完整定义格式是:修饰符 数据类型 变量名称=初始化值;

一般无需指定初始化值,存在默认值。

。对象的成员变量的默认值规则

数据类型 明细 默认值
基本类型 byte、short、int、long 0
float、double 0.0
boolean false
引用类型 类、接口、数组、String null

 

三、封装

1、什么是封装?

封装:将属性和方法封装成一个类,并且对外只暴露必要的接口,隐藏内部实现细节,以提高安全性和可维护性。

原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为。

2、封装的优点和好处

让编程变得很简单,有什么事,找对象,调方法就行。

3、如何让封装变得更安全

添加权限修饰符private

private可以修饰成员(成员变量和成员方法)

被private修饰的成员只有在本类中才能被访问。

4、就近原则

在封装的类中,数据会分别赋值个局部变量成员变量,而就近原则就是局部变量优先与成员变量。

例如:

 5、this的作用?

this可以用来区分成员变量和局部变量。

四、构造方法

1、构造方法的定义和作用

定义:构造方法也叫构造器、构造函数

作用:在创建对象的时候,虚拟机会自动调用构造方法,作用是给成员变量进行初始化赋值的。

2、构造器的格式

public class 类名{

  修饰符  类名(参数){

       方法体;

   }

}

3、构造器的特点

。方法名与类名一致。。

。没有返回值类型,连void都没有。

。没具体的返回值(不能由return带回返回值。

。在创建对象的时候有虚拟机调用,不能手动调用构造方法。

。没创建一次对象,就会调用一次构造方法

4、构造方法定义的注意点

。如果没有定义构造方法,系统将会给出一个默认无参构造方法

如果定义了构造方法,系统将不再提供默认的构造方法。

五、对象内存图

java内存分配介绍

。栈

。堆

。方法区

 

1、一个对象的内存图

创建一个对象时,会在内存里面做以下七个步骤:

Sutdent s=new Student();

  1. 加载class文件
  2. 申明局部变量
  3. 在堆内存中开辟一个控件
  4. 默认初始化
  5. 显示初始化
  6. 构造方法初始化
  7. 将堆内存中的地址值赋值给左边的局部变量

2、多个对象的内存图

3、两个变量指向同一个对象内存图

4、this的内存原理

5、基本数据类型和引用数据类型的区别

基本数据类型:

byte、short、int、long、float、double、char、boolean

特点:数据值存储在自己的空间中,赋值给其他变量,也是赋的真实的值。

引用数据类型:

任意对象,数组

Student s=new Student();

关键字new会在堆内存中开辟一块真实数据值空间,Student s则会在栈内存中开辟一个地址值,这个地址值连接堆内存真实的数据值空间。

特点:

数据值是存储在其他空间中的,自己的空间中存储的是地址值。赋值给其他变量,赋的是地址值。

6、局部变量和成员变量的区别

 区别:

区别 成员变量 局部变量

类中位置不同

类中,方法外

类中,方法中
初始化值不同 有默认初始化 没有,使用之前需要完成赋值
内存位置不同 堆内存

栈内存

生命周期不同 随着对象的创建而存在,随着对象的消失而消失 随着方法的调用而存在,随着方法的运行结束而消失
作用域 整个类中有效 当前方法有效

posted on 2023-05-18 01:15  ×不知该怎么√  阅读(36)  评论(0编辑  收藏  举报

导航