java与包_Java 包与接口

本文介绍了Java中的包(package)概念,包括如何使用`-d`参数创建包目录,以及类的全名构成。详细讲解了访问权限,如public、private、default和protected的区别及其在继承中的应用。此外,还探讨了Java接口(interface)的定义和实现,展示了如何通过接口实现多重继承的功能。
摘要由CSDN通过智能技术生成

Java 包和权限

6.1javac -d . Test.java //-d是根据Test.java生成文件夹、包.是代表当前路径

//将类放置到一个包当中,需要使用package "包名"

//编译时需要使用-d参数,该参数的作用是依照包名生成相应的文件夹

//一个类的全名应该是“包名”+“.”+“类名”

//Jason.Test

//命名规划:1.要求包名所有的字母都要小写

//2.包名一般情况下,是你的域名倒过来写

package org.jason.user;

class Test{

public static void main(String args[]){

System.out.println("Hello package");

}

}

6.2包与访问权限

Public主要在不同的包之中,如果需要访问成员函数等等,需要定义public权限

package org.jason;

//如果一个类是public,那么类名一定要与源文件名一致

//如果未加public,同时类在不同的包内,引用时则会报提示不是公共的

class Person{

public String name;

public int age;

public void introduce(){

System.out.println("name");

}

}

package org.feng;

class Test{

public static void main(String args[]){

org.jason.Person p=null;//不在同一个包内,需要写全称

}

}

Private权限只能在当前类中使用,目前只能为变量与函数定义。

Default权限,同样可以修饰类、变量、函数等,不需要写修饰符,如果类在同一个包中,可以任意使用,调用,如果在不同的包中,需要使用public权限

Import导入

import org.jason.Person;

6.3访问权限与继承

package org.jason;

//default如果子类和父类不在同一个包当中,则子类可以继承变量与函数,但是没有权限访问

//private如果子类和父类不在同一个包当中,则子类无法继承到父类当中的成员变量与成员函数

//protected权限首先拥有和default一样的功能,但是该权限只能修饰成员变量与成员函数,

//除此之外,protected还允许跨包的继承(子类与父类),而public允许各种包之间相互调用

//public>protected>default>private

//一个类或者变量的权限尽可能小

public class Person{

protected String name;

protected int age;

void eat(){

System.out.println("eat");

}

void sleep(){

System.out.println("sleep");

}

}

package org.feng;

import org.jason.Person;

class Student extends Person{

void introduce(){

System.out.println("my name is "+name+",my age is"+age);

}

7.java接口(重点)

定义了接口,就等于定义了调用对象的标准

实现是特殊的继承。

interface USB{

void read();

void write();

}

interface WiFi{

void open();

void close();

}

class Phone implements USB,WiFi{

public void read(){

System.out.println("USBPhone read");

}

public void write(){

System.out.println("USBPhone write");

}

public void open(){

System.out.println("WIFi open");

}

public void close(){

System.out.println("Wifi close");

}

}

class Test{

public static void main(String args[]){

Phone phone=new Phone();

USB usb=usbPhone;

usb.read();

usb.write();

WiFi wifi=phone;

wifi.open();

wifi.close();

}

}

class PrinterFactory{

public static Printer getPrinter(int flag){

Printer printer=null;

if (flag==0){

printer=new HPPrinter();

}

else if (flag==1){

printer=new CanonPrinter();

}

return printer;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值