[public] [abstract| final] class类名称 [extends父类名称][implements接口名称列表]
{
数据成员声明及初始化;
方法声明及方法体;
}
注意:光理论是不够的,在此送大家一套2020最新Java架构实战教程+大厂面试题库,点击此处 进来获取 一起交流进步哦!
钟表类:
public class Clock {
//变量成员
int hour ;
int minute ;
int second ;
//方法成员
public void setTime(int newH, int newM, int newS){
hour= newH ;
minute= newM ;
second= newS ;
}
public void showTime() {
System.out.println(hour+ "." + minute+"." +second);
}
}
其中hour
,minute
,second
为钟表类的属性,setTime
,showTime
为钟表类的行为。
[public | protected | private]
[static][ final][transient] [volatile]
数据类型变量名1[=变量初值],变量名2[=变量初值];
1.没有static修饰的变量(数据成员)称为实例变量;
2.存储所有实例都需要的属性,不同实例的属性值可能不同;
3.可通过下面的表达式访问
1.用static修饰。
2.在整个类中只有一一个值。
3.类初始化的同时就被赋值。
例:
public class Circle{
static double PI = 3.1415926
int redius;
}
其中PI为类变量。
[public | protected | private][static] [final][abstract] [native] [synchronized]
返回类型方法名([参数列表]) [throws exceptionList]
{
方法体
}
public
、protected
、 private
控制访问权限。static
指明这是一个类方法(静态方法)。final
指明这是一一个终结方法。abstract
指明这是一个抽象方法。native
用来集成java代码和其它语言的代码(本课程不涉及)。synchronized
用来控制多个并发线程对共享数据的访问。具有实例方法的圆类:
public class Circle {
static double PI = 3.1415926;
int radius;
public double circumference(){ //求圆周长
return 2*PI*radius;
}
public void enlarge(int factor){ //把圆扩大factor倍
radius = radius*factor;
}
public boolean fitsInside (Rectangle r) { //判断能否被长方形包围
return (2 *radius < r.width) && (2* radius < r.height);
}
}
其中有三个实例方法,fitsInside
方法的参数类型为对象。
例:将摄氏温度(centigrade)转换成华氏温度(fahrenheit)
centigrade ToFahrenheit
放在类Converter
中public class Converter {
public static int centigradeToFahrenheit(int cent)
{
return (cent*9/ 5 + 32);
}
}
方法调用
Converter.centigradeToFahrenheit(40)
import package1[.packae...]. (classname |*);
1.package1[.package…]表明包的层次,对应于文件目录;
2.classname指明所要引入的类名;
3.如果要引入一个包中的所有类,可以使用星号(*)来代替类名。
类型 | 无修饰(默认) | public |
---|---|---|
同一包中的类 | 是 | 是 |
不同包中的类 | 否 | 是 |
类型 | private | 无修饰 | protected | public |
---|---|---|---|---|
同一类 | 是 | 是 | 是 | 是 |
同一包中的子类 | 否 | 是 | 是 | 是 |
同一包中的非子类 | 否 | 是 | 是 | 是 |
不同包中的子类 | 否 | 否 | 是 | 是 |
不同包中的非子类 | 否 | 否 | 否 | 是 |
例:圆类
public Class Circle {
static double PI = 3.14159265;
private int radius;
public doyble circumference() {
return 2 * PI * radius;
}
}
其他的public类中无法访问该类中的radius
属性。
如果想要访问:
get
开头,后面是实例变量的名字public int getRadius(){
return radius;
}
set
开头,后面是实例变量的名字public void setRadius(int r){
radius = r;
}
public void setRadius(int radius){
this.radius = radius;
}
例:
public class BankAccount {
String ownerName;
int accountNumber;
float balance;
//为BankAccount声明一个有三个参数的构造方法
public BankAccount(String initName, int initAccountNumber, float initBalance) {
ownerName = initName;
accountNumber = initAccountNumber;
balance = initBalance;
}
//假设一个新帐号的初始余额可以为0,则可增加一个带有两个参数的构造方法
public BankAccount(String initName, int initAccountNumber) {
ownerName = initName;
accountNumber = initAccountNumber;
balance = 0.0f;
}
//无参数的构造方法自定 义默认的初始化方式
public BankAccount() {
ownerName =" ";
accountNumber = 999999;
balance = 0.0f;
}
}
一共定义了三种构造方法,可以看出名字都相同,但是由于参数不同,实现的功能也不同。
注意:最后送大家一套2020最新Java架构实战教程+大厂面试题库,点击此处进来获取 一起交流进步哦!