文档章节

类 封装

花开院蚂蚁
 花开院蚂蚁
发布于 2016/10/13 21:31
字数 1458
阅读 3
收藏 0
//车类
class Car{
    //事物的公共属性使用成员变量描述。
    String    name; //名字的属性
    String    color; //颜色属性
    int wheel;    //轮子数                
    //事物的公共行为使用函数描述。
    public void run(){
        System.out.println(name+"飞快的跑起来啦...");
    }
}

初始值的区别:

1. 成员变量是有默认的初始值。

数据类型     默认的初始值

int                0

float              0.0f

double              0.0

boolean            false

char                 ' '

String(引用数据类型) null

2. 局部变量是没有默认的初始值的,必须要先初始化才能使用。

 

  • 封装

权限修饰符:权限修饰符就是控制变量可见范围的。

public :  公共的。 public修饰的成员变量或者方法任何人都可以直接访问。

private : 私有的, private修饰的成员变量或者方法只能在本类中进行直接访问。

封装的步骤:

1. 使用private修饰需要被封装的属性。

2. 提供一个公共的方法设置或者获取该私有的成员属性。

 命名规范:

set属性名();

get属性名(); 

class Member{
    public    String name; //名字
    private    String sex; //性别
    public    int salary; //薪水
    //定义一个公共的方法设置sex属性
    public void setSex(String s){
        if (s.equals("男")||s.equals("女")){ //注意: 如果比较两个字符串的内容是否一致,不要使用==比较, 使用equals方法。
            sex = s;
        }else{
            //默认是男
            sex = "男";
        }
    }
    //定义一个公共的方法获取sex属性
    public String getSex(){
        return sex;
    }
}

 

  • 构造函数:

 

构造函数要注意的事项:

1. 构造函数是没有返回值类型的。

2. 构造函数的函数名是必须与类名一致。

4. 如果一个类没有显示写上一个构造函数的时候,那么java编译器会为该类添加一个无参的构造函数。

5. 如果一个类已经显示写上一个构造函数的时候,那么java编译器则不会再为该类添加一个无参的构造函数。

6. 构造函数是可以以函数重载的形式存在多个。

 

 

 

  • this关键字:

this关键字代表了所属函数的调用者对象。

this关键字的作用:

1.  一个类中存在同名的成员变量与局部变量时,在方法的内部默认是访问局部 变量的,可以通过this关键字指定访问成员变量 的数据。

2.  this关键字还可以在构造函数中调用另外一个构造函数初始化对象,

 

this关键字调用构造函数要注意的事项:

1. this关键字调用其他的构造函数时,必须要是在第一个语句。

2. this关键字调用构造函数时不能出现相互调用,因为是一个死循环。

3. 如果在方法的内部访问一个变量时,该变量只存在于成员变量中,局部没有没有,这时候java编译器会为该变量的前面添加this关键字。

 

  • static(静态、修饰符)

static修饰成员变量时:static修饰成员变量时,那么该成员变量的数据就是一个共享的数据.

静态成员变量的访问方式:

方式一: 使用对象进行访问。

对象.属性名

方式二:可以使用类名进行访问。

类名.属性名

注意:

1. 非静态成员变量不能类名直接访问,只能使用对象进行访问。

2. 千万不要为了方便访问成员变量而使用static修饰,一定要是该数据是共享数据 时才使用static修饰。

static修饰方法(静态的成员方法):

 

 

  • 静态的成员变量与非静态的成员变量的区别:

 

1. 作用上的区别:

1. 静态的成员变量的作用共享一个数据给所有的对象使用。

2. 非静态的成员变量的作用是描述一类事物的公共属性。

2. 数量与存储位置上的区别:

1. 静态成员变量是存储方法 区内存中,而且只会存在一份数据。

2. 非静态的成员变量是存储在堆内存中,有n个对象就有n份数据。

3. 生命周期区别:

1. 静态的成员变量数据是随着类的加载而存在,随着类文件的消失而消失。

2.非静态的成员数据是随着对象的创建而存在,随着对象被垃圾回收器回收而消失。

4. 静态函数不能出现this或者super关键字。

原因:因为静态的函数是可以使用类名调用的,一旦使用类名调用这时候不存在对象,而this关键字是代表了一个函数的调用者对象,这时候产生了冲突。

静态的数据的生命周期:静态的成员变量数据是优先于对象存在的。

 

static什么时候修饰一个函数?

如果一个函数没有直接访问到非静态的成员时,那么就可以使用static修饰了。 一般用于工具类型的方法

 

 

 

main函数的详解:

public : 公共的。 权限是最大,在任何情况下都可以访问。 private  

原因: 为了保证让jvm在任何情况下都可以访问到main方法

static  静态。静态可以让jvm调用main函数的时候更加的方便。不需要通过对象调用。

void:  没有返回值。 因为返回的数据是 给 jvm,而jvm使用这个数据是没有意义的。所以就不要了。

main: 函数名。   注意: main并不是关键字,只不过是jvm能识别的一个特殊的函数名而已。

arguments :担心某些程序在启动需要参数。

© 著作权归作者所有

上一篇: 接口
花开院蚂蚁
粉丝 0
博文 24
码字总数 12501
作品 0
合肥
私信 提问
Java之基本数据类型的封装类

基本数据类型 封装类 boolean Boolean byte Byte short Short int Integer long Long char Character float Float double Double 基本数据类型的封装类 1.基本类型的封装类(wrapper)用来存储...

Aaron_DMC
2016/12/15
93
0
java反射学习总结

类的封装类:Class类型的介绍 //任何一个类都是Class的实例对象,这个实例对象有三种表示方式//第一种表示方式--->实际在告诉我们任何一个类都有一个隐含的静态成员变量classClass c1 = Foo...

奔跑的野马
2016/03/16
99
0
封装类(包装类)-鸿沟之上的桥梁

封装类的概念 对基本数据类型进行类型化 以下几个封装类 Boolean Byte Character Short Interger Long Float Double 封装类特点 永不可变 不可继承 封装类对象创建方法 方法一:new 封装类 ...

邓小峰
2009/03/26
133
0
浅析Java基础类型与封装类型的区别

[x] 基础类型(Primitives)与封装类型(Wrappers)的区别在哪里 一、传递方式不同 封装类是引用类型。 基本类型(原始数据类型)在传递参数时都是按值传递,而封装类型是按引用传递的(其实“引用...

AmorFatiYJ
2017/12/22
0
0
【python】博客是必须写的-3 面向对象

1.基本概念 ·面向对象是一种编程方式,此编程方式是基于"类"和"对象"的使用·类:是一个模板,模板中包装了多个"函数"供使用(可以将多个函数共用的变量封装到对象中)·对象:根据类创建的实例,...

Mx孔小发
2018/01/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
12
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部