一、面向对象编程
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. 201521123027 <java程序设计>第11周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2.书面作业 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchro ...

  2. 201521123099 《Java程序设计》第9周学习总结

    1. 本周学习总结 2. 书面作业 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 容易出现拼写错误还有数组越界的异 ...

  3. linux(CentOS5.8)环境下搭建Radius

    本文记录了freeRadius在CentOS5.8环境下的基本搭建过程,未涉及mysql的加入及配置 freeradius官方地址:http://freeradius.org/ 环境:CentOS5. ...

  4. Q:哪里可以注册hk域名?A:这里!这里!(小白绢挥手)

    注意!前方有一条比你妈手中的竹板还硬的推文出没······ 咳咳,清清喉咙,预备唱! (请自动代入甜蜜蜜的曲调) 甜蜜蜜你笑的甜蜜蜜  好像花儿开在春风里  开在春风里 在哪里在哪里见过你  .HK域 ...

  5. centOS 7一个解决“network.service: control process exited, code=exited status=1”方法

    今天早上2017-08-04,我打开虚拟机,使用远程工具xshell对虚拟机进行连接,我发现连接不上去,然后我ifconfig,发现找不到ens33了,就剩一个本地回环,看来是我的网络出现了问题,然后 ...

  6. css常用属性1

    1  背景相关 背景颜色 background-color     = 颜色名称/rgb值/十六进制值 背景图片 background-image = url('') 背景图片平铺方式 backgro ...

  7. 使用JS动态修改网页body的背景色

    大部分网页默认的背景色为白色,个人感觉比较刺眼,于是写了个JS的脚本去改变body部分的背景色,代码如下: // ==UserScript== // @name ChangeBackgroundCol ...

  8. selenium webdriver 启动三大浏览器Firefox,Chrome,IE

    selenium webdriver 启动三大浏览器Firefox,Chrome,IE 1.安装selenium 在联网的情况下,在Windows命令行(cmd)输入pip install selen ...

  9. php中常用的字符串长度函数strlen()与mb_strlen()实例解释

    int strlen ( string $string )  int strlen ( string $string )  获取给定字符串的[字节]长度 成功则返回字符串$string的长度,如果$s ...

  10. PHP程序员40点陋习

    1.不写注释 2.不使用可以提高生产效率的IDE工具 3.不使用版本控制 4.不按照编程规范写代码 5.不使用统一的方法 6.编码前不去思考和计划 7.在执行sql前不执行编码和安全检测 8.不使用测 ...