Java学习之面向对象篇

Java学习之面向对象篇0X00前言前面讲了java的一些基本语法,这里就来讲讲java的核心思想,面向对象。0X01面向对象概念Java语言是一种面向对象的程序设计语言,而面向对象思想是

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Java学习之面向对象篇

0X00 前言

前面讲了java的一些基本语法,这里就来讲讲java的核心思想,面向对象。

0X01 面向对象概念

Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,
使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面
向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算
机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去
操作实现。

从某度搬运过来的一段描述。

那么我们再来讲讲面向对象和面向过程的区别。

面向过程:

特性:模块化   流程化

优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;

比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开 发,性能是最重要的因素。

缺点:没有面向对象易维护、易复用、易扩展

面向对象:

概念
面向对象是按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法。通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。
特性:抽象 封装 继承 多态

优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护

缺点:性能比面向过程低

面向对象编程的特点:封装、多态、继承。

0x02 类的编写

在编写类之前,首先要了解一下几个概念。

类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物

属性:就是该事物的状态信息。

行为:就是该事物能够做什么。

对象:是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性和行为。

类和对象的关系是紧密相连的,类是对一类事物的描述,是抽象的。
对象是一类事物的实例,是具体的。
类是对象的模板,对象是类的实体。就像是一个是设计图纸,一个是设计的成品。

类具有成员变量和成员方法,也就是前面说到的属性和行为。

那么接下来,来看看类的定义格式

public class ClassName {
//成员变量
//成员方法
}

定义类:就是定义类的成员,包括成员变量和成员方法。

成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外。

public class Student {
    int age = 18;
    String name = "小明";
    
    public void eat(){
        System.out.println("name:"+name+"age:"+age+"eat");
        
    }
    
}

这样就定义了一个类,但是要使用的话,要对他进行实例化。

新建一个文件,main方法里面对他进行实例化。

public static void main(String[] args) {
        Student xiaoming = new Student();
        System.out.println("age:"+xiaoming.age);
        System.out.println("name:"+xiaoming.name);
        xiaoming.eat();
    }

0x03 封装

封装概述:

面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。
封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的
方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。

将属性隐藏起来,要是访问某个属性,提供公共方法对其访问。

步骤:使用private关键字修饰成员变量。

对需要访问的成员变量提供对应的get、set方法。

这样能有效的增强代码的安全性,间接对数据进行访问和修改。

private的作用

  1. private是一个权限修饰符,代表最小权限。
  1. 可以修饰成员变量和成员方法。
  1. 被private修饰后的成员变量和成员方法,只在本类中才能访问。

private格式:

private 数据类型 变量名;

public class Student {
private String name;
private int age;
public void setName(String n) {
name = n;
} 
public String getName() {
return name;
} 
public void setAge(int a) {
age = a;
} 
public int getAge() {
return age;
}
}

0x04 结尾

面向对象的基础就目前就写了这些,但这些只是里面的小部分,后面会继续更新java的多态和继承。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119958.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安装VS2005 SP1之后无法更改或卸载VS2005的处理方法

    安装VS2005 SP1之后无法更改或卸载VS2005的处理方法经历千辛万苦装上VS2005之后,一直相安无事,但今天想调整一下VS2005的安装项,于是麻利的调出控制面板–>添加删除程序,选中VS2005点“更改/删除”按钮,发现在加载安装控件的时候爆出一个错误,说是VS_Setup.MSI文件找不到,我按照提示所说的路径,即本机的安装位置,发现确实没有,于是又拿出安装盘来点Setup,结果还是说VS_Setup.MSI文件找不到,这次提示的位置是安装

    2022年10月5日
    3
  • WireShark 安装及简单使用

    WireShark 安装及简单使用WireShark安装及简单使用

    2022年6月24日
    29
  • CentOS7中配置网络连接[通俗易懂]

    CentOS7中配置网络连接[通俗易懂]    刚在VMware安装好的CentOS7,默认安装是没有开启配置网卡信息的,所以连不上网。尝试用两种配置来让CentOS7开启联网功能,一种是直接打开网络功能自动获取ip,会在设定的网段下面随机分配一个ip,另一种是设置固定ip,出于某些特殊的需求,例如要在局域网内做端口映射,需要将虚拟机设置成使用固定的局域网IP,即使虚拟机重启了,其局域网ip仍然不变。一、自动获取ip  …

    2022年5月27日
    35
  • vscode直接运行html_用vscode搭建前端环境

    vscode直接运行html_用vscode搭建前端环境1.本地新建一个空的文件夹2.点击新建一个index.html文件3.输入!4.点击第一个自动生成html模板文件5.右击html文件,在浏览器中运行

    2022年8月22日
    6
  • 2017 cinemachine[通俗易懂]

    2017 cinemachine[通俗易懂]只有2017以上才可以使用~导入Assetstore中的cinemachine,会在上方显示cinemachine。每创建一个虚拟摄像机,就会在主摄像机下创建组件cinemachineBrain;虚拟摄像机的solo可以理解为把当前虚拟摄像机权重设置最高便于修改。cinemachineBrain属性:showdebugText会打印当前是哪个摄像机在执…

    2022年5月23日
    33
  • 字符串匹配算法_多字符串匹配

    字符串匹配算法_多字符串匹配文章目录1.BM(Boyer-Moore)算法1.BM(Boyer-Moore)算法思想:有模式串中不存在的字符,那么肯定不匹配,往后多移动几位,提高效率BM原理:坏字符规则,好后缀规则…

    2022年8月21日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号