`
mywebcode
  • 浏览: 1000466 次
文章分类
社区版块
存档分类
最新评论

java 第五课 类和对象

 
阅读更多

¯类和对象

对象是面向对象程序设计的核心。编写程序对一个问题的求解的过程可以看作是定义类和对象的过程

对象:是构成系统的最基本的单位。

 属性:描述对象的静态特征

 行为:描述对象的动态特征

类:一批具有相同属性及行为的对象的抽象

类是模板,对象是实例;类是抽象的,对象是具体的。类是建筑图纸,而对象是某个大楼。

类的定义

定义类的简单语法格式
[修饰符] class 类名{
//成员变量
//构造方法
// 成员方法
}

注意:[ 修饰符 ]可以是:[ public ][ abstract | final ]

定义成员变量:[修饰符] 类型 成员变量名[=初始值];

修饰符:[public|protected|private][static][final]

成员变量名应是一个合法的标识符,并且应遵循编码惯例;

初始值:定义变量还可以定义一个可选的初始值。

注意:变量名应该由一个或多个有意义的单词组合而成,第一个单词首字母小写,后面每个单词首字母大写,其他字母全部小写,单词与单词之间不需使用任何分隔符。

成员方法的定义
[修饰符] 返回值类型 方法名([形式参数表]){
// 方法体;
}

修饰符: [public|protected|private][static|][abstract|final]

返回值类型:可以是Java语言的任何数据类型,如果声明了返回值类型,则方法体内必须有一个有效的return语句,该语句返回一个变量或表达式的值,变量或者表达式的类型必须与方法返回值类型匹配;如果一个方法没有返回值,则必须使用void来声明。

方法名:命名规则与变量名的命名规则基本相同,但通常建议方法名以英文中的动词开头。

构造方法:是类中的特殊的方法

构造方法的名称和类名相同;

构造方法没有返回值,不需void来声明;

当该类被实例化时,构造方法自动被调用。因此,构造函数的作用—对类对象中的成员进行初始化。

[修饰符] 类名 ([形参列表]){

//构造方法的方法体

}

对象的创建

创建对象的根本途径是构造方法,通过new关键字来调用某个类的构造方法即可创建这个类的实例。

Car c;

c=new Car("QQ","黄色");

内存的存储情况:

对象的使用

格式:对象.成员变量

对象.成员方法名([实参表]);

public class TestCar{

public static void main(String args[]){

Carc;

c=new Car("奔驰600","黑色");

c.run("100km");

System.out.println(c.name);

}

}

如果对象(实例)的使命完成,应该将其被从内存中删除。

当某个对象不在被任何引用变量引用时,该对象将被清除

通过内存垃圾自动收集机制(finalizer)清除无用对象。

默认构造:public 类名(){}

构造方法的重载:当一个类有多个重载的构造方法时,创建该类对象的语句会根据给出的实际参数的个数、参数的类型、参数的顺序自动调用相应构造方法。
public class Car{
String name,color;
public Car(){
name=“汽车”;color=“black”;
}
public Car(String n,String c){
name=n;color=c;
}
}

在同一个类中,类的成员变量是不能重名的,但方法或语句块中的局部变量是可以和类的成员变量重名的,这时候必须使用this来限定和区分是否是类变量。

public class Car{

publicString name,color;

publicint oil;

publicCar(String name,int oil){

this.name=name; this.oil=Oil;

}

publicvoid run(int speed){

intoil=speed;

this.oil-=oil; System.out.println(speed);

}

}

方法间的互相应用也可以使用this关键字
public void highRun(int speed){
int highSpeed=2*speed;
this.run(highSpeed);
}

this引用也可以用于构造方法中作为默认引用

注意:this调用语句必须是构造函数中的第一个可执行的语句。

分享到:
评论

相关推荐

    面向对象程序设计-Java(张白一)

    第5章 消息、继承与多态 第6章 数组 第7章 字符串类 第8章 文字与图形GUI设计 第9章 常用组件GUI设计 第10章 高级组件GUI设计 第11章 异常处理 第12章 多线程 第13章 输入与输出 第14章 网络编程 第15章 JDBC连接...

    学通Java的24堂课

    第5堂课 数组应用 131 第6堂课 面向对象编程 155 第7堂课 字符串处理 189 第2部分 提高篇 第8堂课 类的继承与多态特性 219 第9堂课 其他类特性与异常处理 257 第10堂课 swing编程基础 283 第11堂课 多线程...

    第一章JAVA面向对象的程序设计.doc

    5:面向对象语言:C++、VB、Delphi及JAVA等 二:课程学习的特点 1:观念的转变(从面向过程---面向对象),要忘记“C语言”,又要记住“C语言”。 2:强调实践(程序设计语言相同的特点) 3:充分利用网络资源...

    完整版 Java基础教程 Java入门教程 Java语言程序设计 第5章 方法定义及调用(共20页).ppt

    完整版 Java基础教程 Java入门教程 Java语言程序设计 第5章 方法定义及调用(共20页).ppt 完整版 Java基础教程 Java入门教程 Java语言程序设计 第6章 面向对象基础(共44页).ppt 完整版 Java基础教程 Java入门教程...

    完整版精品java课件 Java基础入门教程 Java程序设计 共15个章节 全套PPT课件 含实验文档 含全部源代码.rar

    完整版精品java课件 Java基础入门教程 Java程序设计 第5章 继承和接口(共47页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第6章 数组和集合(共44页).ppt 完整版精品java课件 Java基础入门教程 Java...

    完成Java面向对象程序设计实验课的心得体会(1).doc

    完成Java面向对象程序设计实验课的心得体会 Java面向对象程序设计实验课的心得体会 经过这几周对... 完成Java面向对象程序设计实验课的心得体会(1)全文共6页,当前为第5页。 完成Java面向对象程序设计实验课的心得体会

    《学通Java Web的24堂课》.(陈丹丹,卢瀚).[PDF]&ckook;

    《学通Java Web的24堂课》.(陈丹丹,卢瀚).[PDF]&ckook;《学通Java Web的24堂课》.(陈丹丹,卢瀚).[PDF]&ckook;

    JAVA-微讲堂01环境变量-陈冬

    讲:陈冬 第一课:计算机中的环境变量 ...第五课:多态 第六课:接口 第七课:封装 第七课:集合 第八课:泛型 第九课:XML 第十课:多线程 第十一课:socket 第十二课:jdbc 第十三课:设计模式

    java教程-每日一课,27天java从入门到进阶

    第四、五天:方法与数组 第六天:类 第七天:对象的出生 第八天:类与类继承 第九天:具体到抽象的升华 第10天:权限内部类包 第11天:API类 第12天:字符串王者地位 第13天:算法工具类包装类 第14天:正则及其他类...

    Thinking in java4(中文高清版)-java的'圣经'

    4.4 Foreach语法 4.5 return 4.6 break和 continue 4.7 臭名昭著的“goto” 4.8 switch 4.9 总结 第5章 初始化与清理 5.1 用构造器确保初始化 5.2 方法重载 5.2.1 区分重载方法 5.2.2 涉及基本类型的重载 5.2.3 以...

    beiyou Java作业 -1

    实验1 类的定义、对象数组的使用 1. 定义一个学生类(Student), 属性有 1)非静态属性String studentNumber 2)非静态属性String studentName 3)非静态属性int markForMaths 4)非静态属性int markForEnglish 5)非...

    Java语言的科学与艺术 斯坦福大学经典教材

    5.3 方法调用过程的技巧 5.4 分解 5.5 算法方法 5.6 小结 5.7 复习题 5.8 编程练习 第6章 对象和类 6.1 使用RandomGenerator类 6.2 javadoc文档系统 6.3 定义自己的类 6.4 表示学生信息 6.5 有理数 6.6 扩展现有类 ...

    Java程序设计(理论基础+实战案例)

    《Java程序设计》是面向计算机相关专业的一门专业基础课,涉及Java语言中面向对象编程、多线程处理、网络通信等内容,通过本课程的学习,学生能够了解 Java 语言特征、常见的 Java 类库以及面向对象程序设计思想,...

Global site tag (gtag.js) - Google Analytics