文章目录
1 包
1.1 包的声明
一级形式包的声明:
package pkg;
例如,创建一个名为myPackage的包
package myPackage;
规则:目录名称必须和包名严格匹配
,如下:
实际上,包会包括很多文件,如下:
多级形式包的声明:
package pkg.pkg2.pkg3;
例如:
package java.awt.image;
注:
package必须是第一条语句。
只能使用其他包中的public类。
没有定义包名的类属于无名包,不能被有名包引用。
1.2 包的引入
引入其他包中的类的语法如下:
import 包类.类名;
例子如下:
运行结果:
分析:
导入ch06包中Package类,在Import_1类中,调用Package的方法。
注:
1 只能引入其他包中public类;
2 一个类可以使用多个import语句引入其他包;
3 import语句是在package语句后的第一条非注释语句。
1.3 Java类库中常用的包
Java类库中常用的包有多个,下面重点介绍如下几类:
java.lang:Java编程语言的基本类库;
java.awt:提供了创建用户界面以及绘制和管理图形、图像的类;
javax.swing:提供了一系列轻量级的用户界面组件,是目前Java用户界面常用的包;java.awt.event:图形用户界面事件处理包;
java.sql:提供了访问和处理来自于Java标准数据源(通常是一个关系型数据库)数据的类;
java.io:提供了通过数据流、对象序列以及文件系统实现的系统输入、输出;
java.util:包括集合类、时间处理模式、日期时间工具等各类常用工具包;
java.net:提供了用于实现网络通讯应用的所有类。
2 修饰符
2.1 类的修饰符
public:包内外都可访问
默认:只能包内访问
2.2 类的成员的修饰符
public:包内+包外可访问
protected:包内+包外子类可访问
默认:包内可访问
private:类内可访问
2.3 类方法的修饰符
public:包内+包外可访问
protected:包内+包外子类可访问
默认:包内可访问
private:类内可访问
小结
3 访问器方法
方法和构造方法一般为public
属性一般为private
对象不能直接访问私有域,但是用户常常需要检索和修改数据域。为了能够访问数据域,可以为私有数据域添加读取方法(getter)和设置方法(setter),这些方法称为访问器方法。
3.1 读取——getter方法
设置方法
void set属性名(属性类型的参数)
比如:对属性radius
public void setRadius(double radius)
3.2 设置——setter方法
获取方法
属性类型 get属性名()
比如:public double getRadius()
实例
编写一个Java程序,程序中有一个类Telephone,Telephone类中包含电话品牌、电话号码、通话时间、费率、余额属性,以及计算话费和显示信息方法。
考虑充值的时候需要确定多少元,所以充值方法需要形参。充值后的余额方法只是修改属性值,不需要返回值。
public class Test {
public static void main(String[] args) {
//实例化对象,根据构造函数参数传入对应的值
Telephone t1;
t1=new Telephone("三星","123456789",100);
//设置rate的值
t1.setRate(0.2);
//设置通话时间
t1.setDialledTime(10);
//对象调用方法
t1.display();
t1.callCost();
System.out.println("充值前的余额:"+t1.getBanlance());
t1.recharge(50);
System.out.println("充值后余额:"+t1.getBanlance());
}
}
//定义手机类,有5个属性
class Telephone {
private String brand;
private String number;
private double dialledTime;//通话时间属性
private double rate;//费率,即每分钟多少钱
private double banlance;//余额
//构造方法,3个参数
public Telephone(String brand, String number, double banlance) {
this.brand = brand;
this.number = number;
this.banlance = banlance;
}
//get,set方法
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public double getDialledTime() {
return dialledTime;
}
public void setDialledTime(double dialledTime) {
this.dialledTime = dialledTime;
}
public double getRate() {
return rate;
}
public void setRate(double rate) {
this.rate = rate;
}
public double getBanlance() {
return banlance;
}
public void setBanlance(double banlance) {
this.banlance = banlance;
}
//1 充值多少钱,2 充值后还有多少余额
public void recharge(double cost) {
banlance=banlance+cost;
System.out.println("充值后的余额"+banlance);
}
//计算花了多少钱,还剩下多少钱
public void callCost() {
double callcost=dialledTime*rate;
banlance=banlance-callcost;
System.out.println("话费:"+callcost);
}
//显示基本信息
public void display() {
System.out.println("手机品牌:"+brand+"电话号码:"+number);
System.out.println("通话时间:"+dialledTime+"费率"+rate);
}
}
小结
1 包(package)是类的容器。
2 如果写package语句,那么它必须是文件中第一条非注释语句。
3 如果写import语句,那么它必须是继package语句后的第一条非注释语句。
4 可见性修饰符是指定类、方法和属性的访问权限的。
5 类的可见性修饰符有两种,其中public是包内外都可见,默认的是只能包内可见。
6 类的成员可见性修饰符有四种,其中public是包内包外都可以访问;protected是包内和包外子类可访问;默认的为包内可访问;private是类内可访问。
7 类方法的可见性修饰符与类的成员的可见性修饰符一致。