首页 > 编程语言 >Java基础---面向对象编程

Java基础---面向对象编程

时间:2022-11-08 23:16:13浏览次数:35  
标签:Java name 对象 构造 --- 继承 实例 面向对象编程 属性

什么是面向对象?

1.面向过程思想

答:线性过程 第一步做什么 第二步做什么

2.面向对象思想

答:物以类聚有,分类的思维模式,思考问题首先解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行全面过程的思索

 

面向对象编程(oop)

面向对象编程的本质就是:以类的方式组织代码,以对象的组织数据

三大特性

1.封装

2.继承

3.多态

 

类和对象的关系

类:类是一种抽象的数据类型,它是对某一类事务的整体描述/定义,但并不能代表某一个具体的事物,比如:手机,动物,植物 等等.....

对象:对象是抽象概念的具体实例,例如:狗就是属于动物类中的一个具体实例

 

创建与初始化对象

使用new关键字创建对象

先有对象才有类 先定义一个总的类 例如 人类 在人类中可以分为name与age 然后再到对象中取实现这个,因为有很多人每个人不同名字不同年龄 所有不能在类中写死 于是有了对象 对象可以定义不同的类 例如在对象中:xiaoming 20  xiaohong 19;

类:这里定义了name 与age 但是要在对象中给他们赋值

 

 对象:对象在方法中实现 这个分别给name与age赋了 xiaoming 与 xiaohong 以及给他们分别赋了 20与19并且在方法中输出了赋予值的属性

 

 

构造器详解

什么是构造器?

构造器也叫构造方法作用是构造一个类的实例,确保对象能够初始化

根据有无参数,构造器可分为无参构造和有参构造

构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象实例进行默认的初始化

构造器的特性

1.与一般方法名不同的是,构造方法名必须和类名保持一致,并且没有返回值,甚至连void都没有。

2.Java编译器会自动创建无参构造函数,因此在类中,无参构造即使没有,我们也可省略不写。实例化对象时无需赋值

3.倘若类中已存在有参构造函数,则编译器不再提供默认无参构造。实例化对象时需赋值,不然报错。

4.当类实例化一个对象时会自动调用构造方法。

5.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承

6.每个类可以有零个或多个构造方法.

 

简单小结类与对象

1.类与对象

  类是一个模块,抽象的。对象是一个具体的实例

2.方法

  定义,调用

3.对象的引用

  引用类型:基本类型(8)

  对象是通过引用来操作的:栈-》堆

4.属性:字段Field 成员变量

  默认初始化:

    数字:0    0.00

    char: u0000

    boolean:false

    引用:null

  修饰符 属性类型 属性名 = 属性值

5.对象的创建与使用

  -必须要new创建对象,构造器  Person kuangsheng = new Person();

  -对象的属性 kuangshen.name

  -对象的方法 kuangshen.sleep()

6.类:

  静态的属性  属性

  动态的行为  方法

 

封装

高类聚,低耦合

封装是将对象封起来 如何封起来呢 就要用到private  private:私有的

在创建对象时要使用private  例如:private String name; 这里将name给私有化了

私有化之后在类中就获取不到呢怎么办呢,这时就要在对象下面加上get和set方法

get:获取这个数据 例如sout(student.getName),这样就能输出name的值了

虽然能获取数据 但是怎样给数据赋值呢。这时就要用到set方法

set:给这个数据设置值 例如 student.setname("李旺") 这样就能给通过set方法给name进行赋值

小结:封装就是把属性私有化了,让外部不能随意更改值和获取值 只能通过get和set方法获取 

 

 

继承

继承顾名思义,可以理解为儿继承父亲 儿子可以继承父亲里面所有东西

如何来继承呢? 继承需要用到一个单词就是"extends" 单词后面加上继承的父类名字

例如:LiWang extends WangMy 这个意思就是李旺类继承了王明阳类

继承的作用继承中子类可以用到夫类的使用东西 对象,方法等等

但是前提是父类中需要使用public公共的 但是private私有的也没关系通过getset请求就好了

 

标签:Java,name,对象,构造,---,继承,实例,面向对象编程,属性
From: https://www.cnblogs.com/wmyk/p/16864338.html

相关文章

  • C-文件操作API合集
    【维生素C语言】第十六章-文件操作(上)【维生素C语言】第十六章-文件操作(下)......
  • JavaScript
    JavaScriptJS基础语法1.JS三部分:ECMAScript:规定了基础语法DOM:文档对象模型BOM:浏览器对象模型2.书写位置:内嵌式:所以的js中的代码都是单引号行内式外部式:......
  • 解决element-ui表格多重嵌套循环时,添加row-key="id" 出现Duplicate keys detected: 'X
     Duplicatekeysdetected:'XXX'错误,怀疑是多重嵌套循环时:key="item.id或index"不能重复的问题,但设置了不同的key后并未解决,原因其实是row-key="id"的问题,因为低......
  • Java数据类型拓展
    Java数据类型拓展publicclassDemo03{  publicstaticvoidmain(String[]args){    //整数拓展:进制 二进制0b 十进制 八进制0 十六进......
  • python课本学习-第二章
    chapter2编程基础一、基本语法1、注释python注释以\(“#”\)开始多行注释使用三个单引号/双引号作为开始和结束标志2、标识符与关键字python命名时避免使用下划......
  • 【操作系统】02-进程的描述与控制
    计算机操作系统——进程目录计算机操作系统——进程第二章进程的描述与控制2.1前趋图和程序执行2.1.1前趋图(PrecedenceGraph)2.1.2程序顺序执行2.1.3程序并发执行......
  • luffy学习-04
    GIT前戏作用和简介Git的作用1对文件(代码)进行版本管理2完成协同开发项目,帮助程序员整合代码1.帮助开发者合并开发的代码2.如果出现冲突代码的合并,会......
  • 2022-11-8学习内容
    1.案例-购物车-商品列表展示1.1MyApplication.javapackagecom.example.chapter06;importandroid.app.Application;importandroid.content.res.Configuration;imp......
  • Java安全之Resin2内存马
    Java安全之Resin2内存马环境resin2.1.17添加Filter分析依然是web.xml注册一个filter,debug进去看注册流程debugdofilter逻辑时看到如下代码,最终走入this._filterChain......
  • JAVA-内存分配
    ......