Hello World
//HelloWorld.java文件
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println(“Hello World!”);
}
}
编译运行
javac HelloWorld.java 编译生成HelloWorld.class
java HelloWorld 运行main方法
变量
存储大小 | 例值 | 注释 | |
byte | 1byte | 3 | 字节 |
int | 4bytes | 3 | 整数 |
short | 2bytes | 3 | 短整数 |
long | 8bytes | 3 | 长整数 |
float | 4bytes | 1.2 | 单精度浮点数 |
double | 8bytes | 1.2 | 双精度浮点数 |
char | 2bytes | ‘a’ | 字符 |
boolean | 1bit | true | 布尔值 |
数组
int[ ] a;
int[ ] a = new int[100];
int[ ] a = new int[ ] {1,3,5,7,9};
使用int[i],i从0开始来调用i下标元素。
位运算
^ xor异或
~ nor同或
数据成员初始化
基本类型的数据成员的默认初始值:
数值型: 0
布尔值: false
其他类型: null
构造器与方法重载
构造优先级:构建方法 > 显式初始值 > 默认初始值
封装
在一个.java文件中,有且只能有一个类带有public关键字,从任意其他类中,我们都可以直接调用该类。
interface
在interface中,我们
- 不需要定义方法的主体
- 不需要说明方法的可见性,interface中的方法默认为public。
用implements关键字来实施interface。一旦在类中实施了某个interface,必须在该类中定义interface的所有方法(addWater()和drinkWater())。类中的方法需要与interface中的方法原型相符。否则,Java将报错。
例子:
interface Cup {
void addWater(int w);
void drinkWater(int w);
} class MusicCup implements Cup
{
public void addWater(int w)
{
this.water = this.water + w;
} public void drinkWater(int w)
{
this.water = this.water - w;
} private int water = 0;
}
实现多个接口例子:
class MusicCup implements MusicPlayer, Cup
{
public void addWater(int w)
{
this.water = this.water + w;
} public void drinkWater(int w)
{
this.water = this.water - w;
} public void play()
{
System.out.println("la...la...la");
} private int water = 0;
}
组合has-a
class Battery
{
public void chargeBattery(double p)
{
if (this.power < 1.) {
this.power = this.power + p;
}
} public boolean useBattery(double p)
{
if (this.power >= p) {
this.power = this.power - p;
return true;
}
else {
this.power = 0.0;
return false;
}
} private double power = 0.0;
} class Torch
{
/**
* 10% power per hour use
* warning when out of power
*/
public void turnOn(int hours)
{
boolean usable;
usable = this.theBattery.useBattery( hours*0.1 );
if (usable != true) {
System.out.println("No more usable, must charge!");
}
} /**
* 20% power per hour charge
*/
public void charge(int hours)
{
this.theBattery.chargeBattery( hours*0.2 );
} /**
* composition
*/
private Battery theBattery = new Battery();
}
包
包的建立
在Java程序的开始加入package,
类是由完整的路径识别的,所以不同的包中可以有同名的类,Java不会混淆。
package com.vamei.society;//表示该程序在com.vamei.society包中 public class Human //将类放入包com.vamei.society中
{
/**
* constructor
*/
public Human(int h)
{
this.height = h;
System.out.println("I'm born");
} /**
* accessor
*/
public int getHeight()
{
return this.height;
} /**
* mutator
*/
public void growHeight(int h)
{
this.height = this.height + h;
} private int height;
}
一个Java程序中只能有一个public的类,该类要与.java文件同名。
一个类可以没有public关键字,它实际上也表示一种权限: 该类在它所在的包中可见。也就是说,包中的其他Java程序可以访问该类。这是Java中的默认访问权限。对象的成员也可以是默认权限(包中可见)。
包的调用
将Human.java编译的Human.class放入相应的文件夹
import com.vamei.society.*;//用于识别路径,*表示引入society文件夹下的所有类。 public class TestAgain
{
public static void main(String[] args)
{
Human aPerson = new Human(180);//也可以提供类的完整的路径com.vamei.society.Human
System.out.println(aPerson.getHeight());
} }