一、面向对象编程
1.什么是面向对象?
万物皆对象

案例一:我想吃大盘鸡
面向过程 面向对象
1.我自己去买一只鸡 1.委托一个会砍价的人去帮忙买鸡
2.我自己宰鸡 2.委托一个胆大的人宰鸡
3.我自己准备菜 3.委托一个厨师帮忙择菜
4.我自己做菜 4.委托一个厨师帮忙做菜
5.我自己吃 5.我自己吃

案例二:小明是一个电脑小白,想要配一台电脑,买完零件后需要搬到家里,组装起来开始玩游戏
面向过程 面向对象
1.小明补充电脑知识 1.委托一个懂电脑的朋友帮忙去买零件
2.小明去买零件 2,。委托一个快递小哥将零件搬到家里
3.小明将零件搬到家里 3.委托一个会组装电脑的人帮忙将电脑组装起来
4.小明组装电脑 4.小明开始玩游戏
5.小明开始玩游戏

面向过程和面向对象的区别:
面向过程:一种看待问题的思维方式,在解决问题的时候,着眼于问题是怎样一步一步解决的,然后亲力亲为的去解决每个步骤中遇到的问题
面向对象:一种看待问题的思维方式,着眼于找到一个具有特殊功能的具体的个体,然后委托这个个体去帮忙做某件事情,这个个体就被称为对象

区别总结:
a.都是一种看待问题的思维方式
b.面向过程着眼于所有的问题亲力亲为解决
c.面向对象着眼于找到一个具有特殊功能的对象,然后委托这个对象去帮忙做某件事情

Java语言是一门纯粹的面向对象的程序设计语言,类和对象是面向对象编程的核心

二、类和对象

1.类和对象的概念
类:一个具有特殊功能的实体的集合(群体)
对象:在一个类中,一个具有特殊功能的实体,能够帮忙解决特定的问题,对象也被称为实例

二者之间的关系:类用于描述某一类对象的共同特征,而对象则是类的具体存在(包含关系)

类 对象
人 张三,李四,杨阳,凌桃根。。。
快递 圆通、申通、顺丰、汇通。。。
superHero 蝙蝠侠,奥特曼,蜘蛛侠,美国队长。。。。。。。。

帮助理解:我们可以将类当做是一种自定义的数据类型,可以使用类来进行定义变量,这种类型的变量统称为引用型变量,也就是说,类是引用数据类型

2.声明一个类
语法:访问权限修饰符 class 类名 {
//类体

说明:a.访问权限修饰符:只能是public(可以被省略)
b.类名只要是一个合法的标识符即可,要求:类名首字母必须大写,遵循驼峰命名法
c.类名尽量使用单个或者多个有意义的单词连接而成

注意:a.一个Java文件中可以同时存在多个类,如果有多个类的话,编译之后会生成多个class文件

b。一个Java文件中只能出现一个由public修饰的类,这个类的类名必须和Java源文件的名称保持一致
c.如果一个Java文件中只有一个类的话,并且这个类不使用public修饰,这时类名和Java文件名可以不一样

3.类中成员变量和方法的定义
1>成员变量
a.成员变量也被称为属性
b.成员变量其实就是全局变量
c.分为静态变量和非静态变量
d.在静态方法中只能访问静态变量,在非静态方法中可以访问静态变量和非静态变量

2>类中方法的定义
a.分为静态方法和非静态方法
b.在静态方法中只能调用静态方法,在非静态方法中可以调用静态方法和非静态方法


成员变量------类具有的特征,举例:人----身高,性别,三围,姓名。。。。
成员方法------类具有的行为,举例:人----吃喝玩乐。。。。

4.对象的创建以及内存分析
对象的创建也称为实例化对象
语法:类名 标识符 = new 类名();

Person xiaoming = new Person();
说明:xiaoming这个变量是一个引用型变量,存放于栈空间中,实际的Person对象存放于堆空间中
所有new出来的对象全部存放于堆空间中,对应的对象的引用存放于栈空间中

5.类中成员变量和方法的访问
总结:a.静态成员变量和静态方法是属于类的,使用 类名. 的方式访问
b.非静态成员变量和非静态方法是属于对象的,使用 对象. 的方式访问
c.开辟空间的时机是不同的

6.方法重载
在同一个类中,如果满足以下的条件时,我们就称为这几个方法之间彼此重载
a.方法名相同
b.参数不同(数量不同,类型不同)
c.跟返回值类型没有关系

7.构造方法
构造方法也叫作构造器,是当实例化一个对象(创建一个对象)的时候,第一个被调用的方法
语法:访问权限修饰符 类名() {

}
普通方法:
访问权限修饰符 其他的修饰符 返回值类型 函数名(参数列表) {

}

注意:a.构造方法是在实例化对象的过程中自动调用的
b.系统会默认为我们提供一个无参的构造方法

构造方法和普通方法的区别
a.构造方法没有返回值
b。构造方法的方法名必须和类名保持一致

使用构造方法的过程中容易出现的问题;。
a.如果没有写有参的构造方法,系统会为我们提供一个默认的无参的构造方法
b。如果手动写了有参的构造方法之后,系统将不再提供无参的构造方法,如果需要使用,则需要手动加上(要求:一般情况下,将无参的构造方法加上,哪怕方法里面什么都不写)

JAVA基础知识总结:七的更多相关文章

  1. Java基础知识陷阱(七)

    本文发表于本人博客. 上次说了下HashSet和HashMap之间的关系,其中HashMap这个内部有这么一句: static final float DEFAULT_LOAD_FACTOR = 0. ...

  2. JAVA基础知识(七)存根类

    存根类是一个类,它实现了一个接口,它的作用是:如果一个接口有很多方法,如果要实现这个接口,就要实现所有的方法.但是一个类从业务来说,可能只需要其中一两个方法.如果直接去实现这个接口,除了实现所需的方法 ...

  3. Java基础知识陷阱系列

    Java基础知识陷阱系列 今天抽空把Java基础知识陷阱有关的文章汇总于此,便于大家查看. Java基础知识陷阱(一) Java基础知识陷阱(二) Java基础知识陷阱(三) Java基础知识陷阱(四 ...

  4. java基础知识文章汇总

    将之前的所有关于Java基础知识的随笔,整理成质量较高的十几篇随笔,几乎是好几篇比较零散的随笔合成现在的一篇,自认为还不错. java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规 ...

  5. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  6. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

  7. Java基础知识系列——String

    最近晚上没有什么事(主要是不加班有单身),就复习了一下Java的基础知识.我复习Java基础知识主要是依据Java API和The Java™ Tutorials. 今天是第一篇,复习了一下Strin ...

  8. 学习android学习必备的java基础知识--四大内部类

    学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...

  9. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  10. java基础知识梳理

    java基础知识梳理 1 基本数据类型

随机推荐

  1. 一、React Native 搭建开发环境(1)(Mac OS - IOS项目)

    React Native是Facebook推出的一个开发IOS和安卓APP的技术.至于更多的详情,这里不再描述,大家可以自行百度它的定义. 目的: 由于我想在一台电脑上同时开发IOS和Android两 ...

  2. MyBatis框架(一)

    MyBatis介绍: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  3. temp--达州银行

    达州银行现场 服务器IP地址 192.168.1.234 ilink / ilink 自己电脑需要设置为固定IP 192.168.1.XXX 子网掩码 255.255.255.0 192.168.1. ...

  4. 手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)

    背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...

  5. Configuration Extensions - 简化配置,让你配置支持变量

    在开发"RabbitCloud"项目时,使用配置文件发现会有很多重复值,所以我基于"Microsoft.Extensions.Configuration"写了一 ...

  6. TestNG简介与安装步骤

    简述 TestNG是一个设计用来简化广泛的测试需求的测试框架, 从单元测试(隔离测试一个类) 到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统, 例如运用服务器) . testNG灵感来 ...

  7. Unitty 3D 贪吃蛇 今日小记 -- 碰撞

    当蛇头碰撞到蛋的时候  应该让蛋消失并且重新创建蛋. void OnTriggerEnter    可以使用这个方法 下面附有这个方法的介绍 其次需要对挂载在之上的Object  check IsTr ...

  8. [转]iOS 应用程序的生命周期

    OS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的. iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的.在后台时,程序会受到 ...

  9. FastDFS安装步骤

    FastDFS是用c语言编写的一款开源的分布式文件系统,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传.下 ...

  10. Hello PyQt5

    在 ubuntu 系统上 GUI 编程,PyQt5 是个不错的选择.首先,当然是安装 PyQt5 了.终端输入命令: pip3 install PyQt5 即可. 1. 建立一目录 x01.PyQtH ...