java程序设计---封装与类(1)

来源:互联网 发布:淘宝联盟优惠券怎么用 编辑:程序博客网 时间:2024/06/03 18:06

封装是面向对象语言一个非常重要的思想,它借助类来完成。

封装与类包括以下内容:

一.类

     1.成员变量与局部变量

     2.成员修饰符

二.方法重载

三.对象

    1.构造方法

    2.创建对象

    3.使用对象

    4.对象参数传值

    5.垃圾回收机制

四.实例变量和类变量

五.类的发现与设计

    1.分类

    2.抽象

    3.封装

    4.CRC卡

六.对象的交互

    1.对象协作

    2.不可变对象

七.UML类图及关系

    1.类图

    2.依赖

    3.聚合

    4.组合

八.日志分析系统的设计与测试

小结




一.类

类是对一类事物的特征的描述,是抽象概念的声明,对象是实际存在的该类事物的个体。

java中没有全局变量,java中的变量大致可以分为成员变量和局部变量。成员变量是指在类体里定义的变量,也称为类的属性或数据成员;在形参、方法内部定义的变量和代码块中定义的变量,属于局部变量。

成员变量在整个类内都有效,局部变量只在它定义的方法体内有效。

public class Variable {
int allChicks=0;
int i=0;
public void method()
{
int i=1;
System.out.println("输出方法中i的值:"+i);
}
public void print()
{
System.out.println("输出类中成员变量i的值:"+i);
}
public static void main(String[] args)
{
Variable var=new Variable();
var.method();
var.print();
}



}

输出方法中i的值:1
输出类中成员变量i的值:0

2.成员修饰符

类体的每个方法或成员变量的访问权限都可以通过修饰符(public,private,protected,default)来指定,访问权限是实现信息隐藏的重要首手段。

二.方法重载

当要使用某个方法时,需要通过它的方法名来实现调用。要实现多个不同方法的调用,就需要给每个方法起不同的名字,但是这样不便于记忆和使用时不方便。

java允许定义多个参数不同但名字相同的方法,即所谓的“方法重载”。

方法重载能方便程序员开发,减少相同功能方法记忆上的困扰。

重载方法需要满足以下特性:

(1)方法名相同。

(2)方法的参数签名(即参数类型,个数,顺序)不相同。

(3)方法的返回值类型不相同,方法的修饰符也可以不相同·。


     package com.litte0;


public class Painter {


public void draw(int i)
{
System.out.println("draw a digit,int's"+i);
}
public void draw(int x,int y)
{
System.out.println("draw a point,it's coordinate is"+x+"and"+y);
}
public void draw(String m)
{
System.out.println("draw a string,it's"+m);
}
}


public class Paintertest {


public static void main(String[] args) {
Painter mt=new Painter();
mt.draw(3);
mt.draw(2,4);
mt.draw("a good day");


}


}

对象

对象代表了某个可以识别的单元或实体,它可以是物理存在的,也可以是抽象存在的。

对象是一个具有状态、行为和标识符的实体,结构和行为类似的对象定义在它们的类中。

构造方法

构造方法是一类特殊的方法,它的名字必须与类名完全相同,并且不返回任何数据类型,构造方法不能有任何非访问性质的修饰符,也不能用void赖修饰。

类可以不定义构造方法,这时编译器会为类隐含声明一个方法体为空的无参构造方法。但当类有明确声明的构造方法时,编译器就不会自动生成无参构造方法了。

构造方法通过new操作符创建对象时被自动调用,调用规则与方法重载的规则是一致的。

package com.lat;


public class Cat {
private String color;
private int legs;
private String colorOfEyes;
private String name;
public Cat()
{

}
public Cat(String color,int legs)
{
this.color=color;
this.legs=legs;
}
public Cat(String color,int legs,String colorOfEyes,String name,String name)
{
this(color,legs);
this.colorOfEyes=colorOfEyes;
name=name;
}
public void setLegs(int alegs)
{
legs=alegs;
}
public int getLegs()
{
return legs;
}
public void eat()
{
System.out.println("I like fish!");
}
public void run()
{
System.out.println("I can run fastly!");
}
public static void main(String[] args)
{
Cat cat=new Cat();
cat.setLegs(2);
cat.eat();
cat.run();
}


}

本例使用了三个构造方法,第2个构造方法中使用了this关键字,它表示一个对象的引用,其值指向正在执行方法的对象。在第三个构造方法中,this用来调用构造方法,此时,this用于调用同一个对象中不同参数的另一个构造方法。特别地,构造方法中通过this关键字调用其他构造方法时,必须放在第一行,否则会编译时报错,构造方法中只能通过this调用一次其他构造方法。


阅读全文
0 0
原创粉丝点击