JAVA程序设计
面向对象
类(class)
类:具有共同属性和行为的对象集合
- 属性:变量(字段 field)
- 行为:函数(方法 method)
class Person{
int age;
String name;
void sayHello(){...}
}
类与对象的关系
- 类是对象的抽象(模板)
- 对象是类的实例
注:类和对象有时都统称“对象”,为了明确起见,后者称为“对象实例”。
面向对象的三大特征:
1. 封装性
模块化:将属性和行为封装在类中,程序定义很多类。
信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类。
class Person{
private int age;
public int getAge(){ return age;}
public void setAge(int a){ age=a;}
String name;
void sayHello(){...}
2. 继承性
父类和子类之间共享数据和方法
//父类
class Person{
int age;
String name;
void sayHello(){...}
}
//子类
class Student extends Person{
String school;
double scorel
void meetTeacher(){...}
}
继承的好处
- 更好地进行抽象与分类
- 增强代码的重用率
- 提高可维护性
3. 多态性
- 不同的对象收到同一个消息(调用方法)可产生完全不同的效果
- 实现的细节则由接收对象自行决定
例子如下:
foo(Person p){ p.sayHello();}
foo(new Student());
foo(new Teacher());
面向对象设计思想的要点
- 认为客观世界由各种对象组成
- 程序的分析和设计都围绕着
- 有哪些对象类
- 每个类有哪些有哪些属性、哪些方法
- 类之间的关系(继承、关联等)
- 对象之间发送消息(调用方法)
Application和Applet程序
- 结构和运行环境不同
- 前者是独立的程序,需要执行器(调用虚拟机)来运行
- 后者是潜在HTML网页中的非独立的程序
- 由专门的appleViewer来运行
- 或者由Web浏览器(调用JAVA虚拟机)来运行
Application程序
HelloWorld.java
public class HelloWorldApp {
public static void main (String agrs[]){
System.out.println("Hello World!");
}
}
要点:
- class是主体
- public类名与文件同名
- main()的写法是固定的
- System.out.print 及 println 及 printf
JAVA程序的基本构成
HelloDate.java
-
package 语句(0或1句)
-
import 语句(0或1句)
- 导入其他类的类库
-
类定义——class(1个或多个)
- 一个文件只能有一个public类(与文件同名)
-
类=类头+类体
-
类成员 = 字段(field)+方法(method)
- 字段(field,属性,变量)
- 方法(method,函数)
-
方法 = 方法头 + 方法体
唐大仕老师的听不懂。。。转站翁恺老师
零基础学Java语言-翁恺
本课程使用eclipse IDE。
第一个程序:HelloWorld
package hello;
import java.util.Scanner;
public class Hello {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Hello World!");
}
}
- 使用ALT+/ 可让eclipse自动联想补全代码。
System.out.println("");
表示换行输出- 一句语句使用
;
表示结束
读输入
Scanner in = new Scanner(System.in);
System.out.println(in.nextLine());
- 任何需要读用户输入的程序都需要这行
变量
变量定义
- 一般形式:<类型名称><变量名称>;
- 例:
- int price;
- int amount;
- int price, amount;
变量名字
定义:用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列。
判断两个浮点数是否相等
double a = 1.0;
double b = 0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1;
System.out.println(a==b);
Math.abs(f1 - f2) < 0.00001
包裹类型
基础类型 | 包裹类型 |
---|---|
boolean | Boolean |
char | Character |
int | Integer |
运算符
- 当需要让一个类或对象做事情的时候,用.运算符
- a.length
- Integer.MAX_VALUE
- 点左边是一个对象,右边是提供的服务。
Character类
- static boolean isDigit(char ch)
判断这个字符是不是数字 - static boolean isLetter(char ch)
判断这个字符是不是字母 - static boolean isLowerCase(char ch)
判断这个字符是不是小写字母 - static boolean isUpperCase(char ch)
判断这个字符是不是大写字母
Math类
- Math.abs();
- Math.round();
- Math.random();
- Math.pow();
字符串
new = 创建
String s= new String(“a string”);
- 创建了一个String的对象
- 用“a string”初始化这个对象
- 创建管理这个对象的变量s
- 让s管理这个对象
System.out.print("Please input a char:");
char c = 0;
try{
c = (char) System.in.read()
}catch(IOException e){}
System.out.println("You have entered" +c);
AppLineInOut.java
try{
BufferReader in = new BufferedReader(
new InputStreamReader( System.in));
s = in.readLine();
}catch(IOException e){}
AppNumInOut.java
BufferedReader in = new BufferredReader(
new InputStreamReader( System.in));
System.out.print("Please input an int: ");
s = in.readLine();
n = Integer.parseInt( s );
- 输入输出数字
- 用Integer.parseInt( s );
- 用Double.parseDouble( s );