文档章节

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

S
 Sunmos
发布于 2017/05/13 00:18
字数 1332
阅读 1
收藏 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
黑马程序员.bobo.DAY.5

------- android培训、java培训、期待与您交流! ---------- DAY-5 1.面向对象(概述) 1.1理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程是一种思想 面向过程 强调的功能行为 ...

BobbyLou
2015/05/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HTML显示json字符串并且进行格式化

通过pre标签进行格式化展示,使用JSON.stringify()方法转换。 代码如下:   <html> <head> <title>HTML显示json字符串并且进行格式化</title> </head> <body> <p id="show_p">{ "name": "B......

writeademo
1分钟前
0
0
LNMP——php-fpm

php-fpm的pool •vim /usr/local/php/etc/php-fpm.conf //在[global]部分增加include并删除我们之前www池子 • include = etc/php-fpm.d/*.conf • mkdir /usr/local/php/etc/php-fpm.d/ • ......

chencheng-linux
5分钟前
0
0
fixed在微信下的BUG

最近在一个项目中,碰到了一个问题,是属于微信内部的问题,或者说,是属于APP内部的问题,它的根源来自于fixed定位以及-webkit-overflow-scrolling的组合使用,虽然现在还无法理解问题的根源...

Jack088
8分钟前
0
0
sentry错误日志收集

安装方式 : 1 docker 2 Python 安装docker,使用命令 sudo yum -y install docker-io 启动docker 使用命令service docker start docker换源sudo curl -sSL https://get.daocloud.io/daotoo......

猿神出窍
10分钟前
0
0
input输入框的限制

1、键入时候保存数字, 问题:多个输入框的时候,连续输入非数字,导致删除的非数字出现 onkeyup="this.value=this.value.replace(/\D/g,'')" 2、onkeypress,返回true和false来设置是否键入...

大美琴
12分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部