文档章节

Java基础知识_day07_(面向对象,构造方法,封装,成员变量与局部变量)

S
 Sunmos
发布于 2017/05/13 00:18
字数 1332
阅读 2
收藏 0

内容概要:

  • 面向对象思想
  • 面向对象特性-封装
  • 构造方法
  • 类名作为形式参数及返回值

1. 面向对象思想

面向过程和面向对象思想:

a). 面向过程:自己实际的解决问题;
b). 面向对象:找一个对象,来解决问题;
c). 面向对象是基于面向过程的编程思想.

面向对象思想特点:

a). 是一种更符合我们思考习惯的思想;
b). 可以将复杂的事情简单化;
c). 将我们从执行者转变为了指挥者.

类与对象: Java语言的基本单位是类

a). 属性:事物的描述信息(名词)
b). 行为(功能):事物能够做什么(动词)
c). 类:是一组相关的属性和行为的集合(描述生活中事物)
d). 对象:是该事物的具体体现

类的定义: 描述现实世界的事物

事物:
  属性:事物的描述信息
  行为:事物的功能
类:
  成员变量:就是事物的属性
    定义在类中方法外
    初始化值:可以不给初始化值
  成员方法:就是事物的功能
    没有static关键字
  使用类:就是使用该类的成员(成员变量和成员方法).
  创建类:
    格式:类名 对象名 = new 类名();
  实例对象访问成员:
    访问成员变量:对象名.变量名;
    访问成员方法:对象名.方法名(…);
  测试类:主方法不要放在具体的类中,单独创建一个测试类
     测试类用于测试其他的类.具体的类中不要主方法.

2. 面向对象特性-封装

封装原则:

把不需要对外提供的内容隐藏起来;
对外隐藏实现细节,提供公共的访问方式;
成员变量私有化(private修饰),提供getXxx()和setXxx()方法方式的访问.

封装好处:

通过成员方法来控制对成员变量的访问,提高代码的安全性;
将代码使用方法进行封装,提高代码的复用性.

成员变量和局部变量的区别:

在类中位置不同:成员变量在类中方法外,局部变量在方法中或方法声明上;
在内存中的位置不同:成员变量在内存中的堆内存,局部变量只能在内存中的栈内存;
生命周期不同:成员变量随着类的对象的创建而存在,随着对象的消失而消失;局部变量随着方法的调用而存在,随着方法的调用结束而消失(方法中代码块里的变量的不同,其生命周期是其所在的代码块);
初始值不同:成员变量有默认值;局部变量没有初始值,在使用前必须先赋值.

局部变量和成员变量同名时:局部位置使用变量是采用就近原则.
private关键字:

通过类的实例对象直接访问成员属性,存在安全问题,通过private关键字修饰属性进行限定;
private是修饰符,可以修饰成员变量和成员方法,其修饰的成员变量和成员方法只能在本类中访问;
针对private修饰的变量,可以相应的提供相应的方法(getXxx()和setXxx()),提供访问成员变量的方法;getXxx()提供两个获取属性值,setXxx()提供设置成员属性的方法,两个方法的修饰均为public,在访问属性的方法中进行对属性值进行限定.

this关键字:

代表所在类的对象引用;
方法被哪个对象调用,this就代表哪个对象;
局部变量给同名成员变量赋值;
作用:解决局部变量和成员变量重名,this.变量名,代表成员变量。

3. 面向对象的构造方法

作用:给对象的数据进行初始化(用来创建对象)
格式:

方法名和类型相同;
无返回值,void也没有;
没有具体的返回值,有return,但是没有具体的值。

调用:

通过new关键字调用,调用格式:类名 对象名 = new 构造方法(…);本质是用来创建对象。

注意事项:

如果我们没给出构造方法,系统会给出一个无参构造方法;
如果我们给出构造方法,系统就不会给出无参构造方法,如果要使用无参构造方法,需要定义无参构造方法,一般给出无参构造方法;
构造方法可以重载;
构造方法私有后,该类不能创建对象。

成员变量赋值:

使用setXxx()方法进行赋值;
使用有参构造方法赋值。

4. 类名作为形参和返回值

类名作为形式参数进行传递:

本质是需要传递该类的一个实体对象(需要创建该类的实体对象作为参数)。

类名作为返回值类型:

本质是返回一个该类的一个实体对象(需要定义一个该类的实体对象进行接收)。

本文转载自:http://blog.csdn.net/l631106040120/article/details/64128866

共有 人打赏支持
S
粉丝 0
博文 34
码字总数 0
作品 0
成都
第二十五节:Java语言基础-面向对象基础

面向对象 面向过程的代表主要是语言,面向对象是相对面向过程而言,是面向对象的编程语言,面向过程是通过函数体现,面向过程主要是功能行为。 而对于面向对象而言,将功能封装到对象,所以面...

达叔小生
08/10
0
0
Java基础知识总结(绝对经典)

本人学习java时,做的java基础知识总结: 因内容较多,提供原文链接下载。 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句...

石小全
2012/04/08
0
6
01 - JavaSE之基础及面向对象

JAVA基础知识 Java 是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门面向 Internet 的高级编程语言。 Java 虚拟机(JVM:Java Virtual Machine) JRE(Java Runtim...

fengdaoting
01/07
0
0
初试刀 浅谈Java和C#在面向对象上语法的区别

 做了几年了开发一直没有总结什么,回到了家乡的小城做了一名培训班的教员,教授软件开发的知识。细小的知识从头细细嚼来,别有一番滋味。或是以前遗漏的太多,或是确实没有系统的学习过,教...

夜默
2013/06/18
0
0
【给初学者】Android学习路线

很多朋友都对学习路线问题感到迷茫,特别是还在上学的朋友们。在这里就详细的为大家介绍一下。 1.Java基础 很多朋友一上手就开始学习Android,似乎太着急了一些。Android应用程序开发是以Jav...

Jimmy Xie
2012/09/08
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Docker学习笔记

Docker Resources All In One Docker 学习资源整理

OSC_fly
29分钟前
4
0
Android 安全逆向:篡改你的位置信息

篡改你的位置信息

蔡小鹏
29分钟前
3
0
SpringMVC 全局异常处理,返回json

1.在spring-mvc.xml中增加配置: 比如我的freemarker视图定义的是:/WEB-INF/template 我的页面则放在template下的common目录下,所以下方定义的是common/500,文件扩展名根据视图定义可以忽...

Gmupload
30分钟前
2
0
一篇文章搞定前端面试

本文旨在用最通俗的语言讲述最枯燥的基本知识 面试过前端的老铁都知道,对于前端,面试官喜欢一开始先问些HTML5新增元素啊特性啊,或者是js闭包啊原型啊,或者是css垂直水平居中怎么实现啊之...

Jack088
37分钟前
3
0
ajax 轮询请求后台服务器

<script type="text/javascript"> // var i=0; //声明轮询次数变量 $(document).ready(function(){ c = window.setInterval("getResult()",10000); //间隔多少秒去触发ajax }); function get......

15834278076
40分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部