java面向对象基础知识总结

java面向对象基础知识总结

1.类

类的理解:

我们就以平常,简单的去理解什么是类,我们生活中有许多类,比如我们人是一种类,我们人这个类则有许多特征,比如有名字,有姓名,有身份证等等,我们称这种特征为属性,除了这些特征,我们人应该还有一些能力,比如能吃饭,能跳舞,能打游戏。我们将这些能力放在方法当中。由此可知,一个完整的类由属性和方法构成。

类的定义:

修饰限定符 class name(name为一个标识符,表该类的类名)

如:

class Human{
    String name;
    int id;
    public static void eat(){
        System.out.println("人吃饭");
    }
}

2.对象的创建与使用

对象的理解:

我们简单的去理解的,果然人这个类存在,比如你的女朋友是一个对象,你妈也是个对象,包括你自己也是个对象。你们这些对象都是通过人这个类去创建的。

对象的定义:

类名 引用名=new 类型();(因此前提就是要创建这个对象,它必须有个对应的类)

如:

import java.util.Arrays;

public class Test {
    public static void main(String[] args) {
        Human Tom=new Human();
    }
}
class Human{
    String name;
    int id;
    public static void eat(){
        System.out.println("人吃饭");
    }
}

对引用的理解:

根据引用的位置可知,引用是一个变量,它的内容是你创建对象的地址(即:该引用指向该对象的地址);

具体的,因为你创建的引用变量是放在栈区,而对象的创建,即你创建的对象是在堆区,则通过引用存放该对象的地址,指向该对象进行操作。

如下图:

在这里插入图片描述

如何通过引用访问对象的内容

读取数据:引用.变量名(或方法名);
修改数据:引用.变量名=值;

3.面向对象的封装

封装的解释:

封装,举我们生活中的列子,我们网上买一个东西,一方面为了其安全性,我们需要给它整个快递盒。另一方面,封装也可以使封装的对象简单化,如我们平时用的电视,它的内部结构其实非常的复杂,但经过人为的封装,它只需要通过遥控器进行控制。那么我们java语言中呢,即使用一些访问修饰限定符,使得我们代码的内容更加完善安全。

访问修饰限定符:

具体参考下表

在这里插入图片描述

封装的优点:

封装后,对于被封装的对象,使其复杂的一面被抹去,让其简单化。
(即:复杂性封装,对外提供简单的操作入口)

封装的特点:

(1)只有封装后才能形成真正的“对象”,即一个独立体
(2)封装意味着提升封装对象的适应性,使其在更多场所都可以使用
(3)封装提升了事物自身的安全性

包的引入

目的:进行分类,提升效率。
与封装的联系:将创建的许多功能目的一致的类放在同一个包中,提升运用效率,如:数组有一个包:Arrays,则目的是为了更方便的使用数组。###

set与get的引入

目的:解决private修饰后属性与方法无法在类外使用,在提升安全性的同时,解决局限性。
用法:一个类中创建private变量或方法,在另一个测试类中创建了该类的对象,因为为私有,不能直接使用,则需要在那个类中创建set方法与get方法,set方法用修改变量值,get方法用与读取变量值。并且提供引用来调用。
定义:public void set属性名(首字母大写)(形参){ }
public void get属性名(首字母大写)(形参){ }

4.构造方法

构造方法的用处:

由于我们平时创建对象都是无参的,为了一调用就可以给属性赋值,或者达到一些其他什么功能,我们可以创建有参构造方法。当创建对象的时候,可以传相应的参数,达到我们相应的目的。

构造方法的定义:

[修饰符列表] 方法名(形参){}

构造方法的相关定理:

(1)当一个类没有定义任何的构造方法,程序默认定义了一个无参的构造方法
(2)构造方法虽然不用指定返回值,但却有返回值,java程序会自动返回,返回类型为构造函数所在类的类型(即返回值是类本身)
(3)构造方法支持方法重载,其实当定义多个构造方法时,就已经构成了方法重载了。(因为他们的名字都是类名)

5.this关键字

什么是this:

this是一个关键字,它是一个引用,也是一个变量。
this关键字保存了所在对象的内存地址,并且指向其自身
每个对象都有this,一百个对象有一百个this
this不能存在与static关键字修饰的方法当中

相关定理:

(1)this();直接调用构造方法,但只能放在第一行(因此也得出,构造方法的调用不一定要创建对象)
(2) this很多时候都可以省略,但当应对区分同名变量时,不可省略
(3)我们平时一个类中的实例方法,其实隐藏了一个this形参

6.static关键字

static关键字的用处:

(1)好处:对于一个类的许多对象,如中国人为一个类,这些对象的属性都有国籍,但他们的国籍都是中国,每有重复定义的必要,我们就能将其定义为静态的属性。解决繁琐性。
(2)功能体现举例:比如我们想要统计实时创建的对象数(即有一个变量记录当时的对象数),但是我们常规的普通变量或者其它修饰词修饰的变量实际上并不能满足我们的需求,因此我们可以利用静态变量的共通性,去记录。但这也只是举例,它的实际作用很丰富,能做什么更多的取决与需求。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值