首页 > 其他分享 >面向对象

面向对象

时间:2022-11-28 17:11:45浏览次数:30  
标签:变量 构造方法 成员 局部变量 面向对象 修饰 方法

Java 内存分配

栈:所有局部变量都会在栈内存中创建

  局部变量:定义在方法中的变量或者方法声明上的变量

  方法执行都会加载到栈中进行

  局部变量特点:随着方法的调用而存在,随着方法的调用完毕而消失

堆:所有对象及其对应的实例变量和数组都将存储在此处 简单理解为:new出来的东西,都存储在堆内存

  每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收

  实例变量(成员变量)有初始化值:1、基本数据类型:整数:0,浮点数:0.0,布尔:false,字符:空字符  2、引用数据类型:null

例:Student s = new Student();

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

类中位置不同:

  成员变量:类中方法外

  局部变量:方法内或者方法声明上

内存中位置不同:

  成员变量:堆内存

  局部变量:栈内存

生命周期不同:

  成员变量:随着对象的存在而存在,随着对象的消失而消失

  局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

初始化值不同:

  成员变量:有默认的初始化值

  局部变量:没有默认的初始化值,必须先定义,赋值,才能使用

private 关键字

是一个权限修饰符,可以修饰成员(成员变量和成员方法)

作用:保护成员不被别的类使用,被 private 修饰的成员只在本类中才能访问

针对 private 修饰的成员变量,如果需要被其他类使用,提供两个相应的操作:

  提供“get变量名()”方法,用于获取成员变量的值,方法用 public 修饰

  提供“set变量名(参数)”方法,用于设置成员变量的值,方法用 public 修饰

this关键字

this限定的变量用于指代成员变量

  方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量

  方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量

public class Student {
    private String name;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

封装

1. 封装概述

  是面向对象三大特征之一(封装,继承,多态)

  是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的

2. 封装原则

  将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

  成员变量private,提供对应的getXxx()/setXxx()方法

3. 封装好处

  通过方法来控制成员变量的操作,提高了代码的安全性

  把代码用方法进行封装,提高了代码的复用性

构造方法

1、构造方法概述

  构造方法是一种特殊的方法。作用:创建对象

格式:
public class 类名{
        修饰符 类名( 参数 ) {
        }
}

  功能:主要是完成对象数据的初始化

2、构造方法的注意事项

① 构造方法的创建

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

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

② 构造方法的重载

  如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法

JavaBean

就是一个Java中的类,其对象可以用于在程序中封装数据

标准 JavaBean 须满足如下要求:

  成员变量使用 private 修饰

  提供每一个成员变量对应的 setXxx() / getXxx()

  提供一个无参构造方法

 

标签:变量,构造方法,成员,局部变量,面向对象,修饰,方法
From: https://www.cnblogs.com/sunny-sml/p/16930114.html

相关文章

  • 关于面向过程,面向对象,面向切面编程
    最近在学习spring的AOP,顺便把三种思想一起总结一下。仅代表个人理解,欢迎指正。首先是面向过程编程,在实现业务逻辑的时候,整理出业务流,然后细分成方法,编程实装。通......
  • 面向对象(op)
    属性+方法=类从认识论角度是先有对象后有类,对象是具体的事物比如人,而类是抽象的是对对象的抽象比如人会做饭这一类人抽象出来就成为了厨师从代码运行角度是先有类后有对......
  • 06-面向对象_继承
    typora-root-url:images一、简介1.1、问题引入​ 在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物......
  • 05-面向对象_封装
    typora-root-url:images一、编程思想1.1、什么是思想​ 何谓编程思想?首先解释一下“思想”。​ 先问你个问题:你想做个怎样的人?​ 可能你会回答:我想做个好人,孝敬......
  • 面向对象的JavaScript框架 MooTools
    MooTools是一个简洁,模块化,面向对象的JavaScript框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的JavaScript代码。Mootools从Prototype.js中汲取了许多有益的设计理......
  • c++ 面向对象 class类总结
    c++三大特性访问权限​ 在c++中通过public、protected、private三个关键字来控制成员变量和成员函数的访问权限,它们分别表示为公有的、受保护的、私有的,称为成员访问限......
  • 10、go的面向对象
    结构体结构体的定义//定义结构体,老师的结构体,各个属性统一放入结构体管理typeTeacherstruct{ //变量名大写开头外界可以访问 Namestring Ageint Scho......
  • 任务11 面向对象基础
    一、理解面向对象1、面向过程:面向过程是一种以过程为中心的编程思想其原理就是将问题分解成一个一个详细的步骤,然后通过函数实现每一个步骤,并依次调用。2、面向对象:......
  • 任务12 面向对象编程方法进阶
    一、魔术方法以'__'包起来的方法魔术方法不需要调用就可以自动执行常用的四种魔术方法:__init__();__new__();__del__();__str__()(1)__init__():初始化方法,类实例化时......
  • js面向对象+ES6
    1、面向对象编程介绍1、面向过程编程POP(Process-orientedprogramming)面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一......