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调用一次其他构造方法。
- java程序设计---封装与类(1)
- 【读书笔记】Java语言与面向对象程序设计3:抽象封装与类
- Java面向对象程序设计 类封装
- JAVA程序设计基础教程 封装、继承与多态
- java基础--类与对象(封装)
- JAVA面向对象程序设计——类的基本形式(封装)
- java程序设计一个日历,不用封装的类的程序
- java 类与对象-封装
- java面向对象程序设计之封装
- java面向对象程序设计之深入封装
- java面向对象程序设计之封装
- java程序设计与问题解决(基础篇)-读书笔记-1
- java程序设计与问题解决(高级篇)-读书笔记-1
- java的封装(如何封装类)
- 《Java 程序设计》— 类与对象
- JAVA程序设计基础教程 类与对象
- Java程序设计——类与对象
- Java程序设计知识与技能(一)
- 学习笔记1:php中单双引号对字符串数据输出的影响
- 餐饮大数据-hive的JDBC操作
- 【系统学习SpringBoot】再遇Spring Data JPA之JPA应用详解(自定义查询及复杂查询)
- 一款比Visio更易用的国产图形图表设计软件
- FlexSIM.ED V4.0(生产排程,虚拟管理,能力平衡软件)_USB 加密锁运行稳定版\
- java程序设计---封装与类(1)
- 309. Best Time to Buy and Sell Stock with Cooldown
- vue 公共底部
- VIM设置---支持鼠标进行光标定位,上下滚动
- 时间字符串格式化
- jQuery中的DOM操作
- GDI+ 中发生一般性错误 可能的原因
- SNIMissingWarning和InsecurePlatformWarning警告
- 迭代器学习笔记