Java入门(4)
2024-10-09 17:29:34
阅读书目:Java入门经典(第7版) 作者:罗格斯·卡登海德
面向对象编程(OOP)将程序视为对象的集合,确定程序要完成的任务,然后将这些任务指派给最适合完成它们的对象。换言之,计算机程序是一组对象,这些对象协同工作以完成某项任务,有些简单程序看似只有一个对象(类文件)组成,但实际上也使用了其他对象来完成工作。
在面向对象编程中,对象包含两项内容:属性和行为,属性描述对象并使其不同于其他对象,而行为指的是对象能做什么。
1 package com.java24hours;
2
3 public class Modem {
4 int speed;
5
6 public void displaySpeed() {
7 System.out.println("speed: "+speed);
8 }
9 }
通过继承,程序员只需定义新类与现有类的不同之处,就能够创建一个新类。继承其他类可以使用extends语句。
1 package com.java24hours;
2
3 public class ErrorCorrectModem extends Modem {
4 //继承Modem类
5 }
我们称从其他类继承而来的类为子类,被继承的类为超类。Java中存在大量的继承,进而形成继承层次。
简单变量类型转换示例:
int destination = (int)source;
对象间的类型转换:可以在任何需要超类的地方使用类对象。也可以将对象用于需要其子类的地方,但由于子类含有更多信息,如果程序使用对象没有包含的子类方法,将导致错误。将类型用于需要子类的地方,需要进行显式地类型转换。
1 public void paintComponent(Graphics comp){
2 Graphics2D comp2D = (Graphics2D) comp;
3 }
简单变量和对象之间的类型转换,例如:
Integer suffix = new Integer(5396); int newSuffix = suffix.intValue();
String count = "25"; int myCount = Integer.parseInt(count);
1 package com.java24hours;
2
3 public class NewRoot {
4 public static void main(String[] arguments) {
5 int number = 100;
6 if(arguments.length>0) {
7 number = Integer.parseInt(arguments[0]);
8 }
9 System.out.println("The square root of "
10 +number
11 +" is "
12 +Math.sqrt(number)
13 );
14 }
15 }
Java的自动封装功能将简单变量值转换为相对应的类,封装功能将对象转换为相对应的简单变量值。
在现在的Java版本中,如下的语句也是合法的语句:
Float total = new 1.3F;
float sum = total/5;
Integer suffix = 5309;
创建对象:
1 package com.java24hours;
2
3 public class Modem {
4 int speed;
5
6 public void displaySpeed() {
7 System.out.println("speed: "+speed);
8 }
9 }
1 package com.java24hours;
2
3 public class CableModem extends Modem{
4 String method = "cable connection";
5
6 public void connect() {
7 System.out.println("Connecting to the Internet...");
8 System.out.println("Using a "
9 +method);
10 }
11 }
1 package com.java24hours;
2
3 public class DslModem extends Modem{
4 String method = "DSL phone connection";
5
6 public void connect() {
7 System.out.println("Connecting to the Internet...");
8 System.out.println("Using a "
9 +method);
10 }
11 }
1 package com.java24hours;
2
3 public class ModemTester {
4 public static void main(String[] arguements) {
5 CableModem surfBoard = new CableModem();
6 DslModem gateway = new DslModem();
7 surfBoard.speed = 5_000_000;
8 gateway.speed = 4_000_000;
9 System.out.println("Trying the cable modem: ");
10 surfBoard.displaySpeed();
11 surfBoard.connect();
12 System.out.println("Trying the DSL modem ");
13 gateway.displaySpeed();
14 gateway.connect();
15 }
16 }
Java不像C++中一个类可以继承多个类,任何一个类只有一个超类。
最新文章
- C#非常重要基础之多态
- 在ubuntu上配置nginx+php+mysql+phpmyadmin
- mysql zip 版本配置方法
- [Spring入门学习笔记][创建网站URL]
- python(序列递归)【输出原子级别元素。。。】
- awk 中 FS的用法
- SRM 558 SurroundingGame
- 基于emWin的WAV,MP3软解软件播放器,带类似千千静听频谱,含uCOS-III和FreeRTOS两个版本
- js 自动类型转换
- 集合基本操作 Python DAY2
- Linux下对lvm逻辑卷分区大小的调整(针对xfs和ext4不同文件系统)
- Java开发环境配置(2)--jdk配置和 多个JDK问题处理
- Kafka Streams简介: 让流处理变得更简单
- web自动化-窗口句柄及位置变化
- 微信小程序中使用Async-await方法异步请求变为同步请求
- hdu5992 kdt
- std::string find 的返回值
- 不用MathType, 如何在Mac Word中插入公式
- fedora 使用
- QTP设置共享对象库
热门文章
- Web Storage API的介绍和使用
- c++中CString:: Find , ReverseFind, Left, Right
- Java (二)基于Eclipse配置Commons IO的环境
- 对于dijkstra最短路算法的复习
- try with resource当中你没有注意到点。。
- 下载 node.js 步骤 bower npm 报错解决
- shell-变量的数值运算与特殊应用expr
- MeteoInfoLab脚本示例:利用比湿、温度计算相对湿度
- mysql 操作数据库
- 经验分享:对于刚接触开发的大学生,怎么在Windows查看与关闭端口占用方法?