您的位置:首页 > 编程语言 > Java开发

java入门9-形式参数,导包,修饰符,内部类

2017-02-23 17:39 281 查看

1、形式参数和返回值的问题

(1)形式参数:
类名:需要该类的对象,或者使用匿名对象
抽象类名:抽象类不能实例化,需要创建该类的子类对象作为参数
接口名:需要该接口的实现类对象
(2)返回值类型:
类名:返回的是该类的对象
抽象类名:返回的是该类的子类对象
接口名:返回的是该接口的实现类的对象
(3)链式编程
对象.方法1().方法2().......方法n();
每次调用完毕方法后,返回的是一个对象。


代码举例:

抽象类的
abstract class Person {
public abstract void study();
}

class PersonDemo {
public void method(Person p) {
p.study();
}
public Person getPerson()
{
return new Student();//返回抽象类的子类对象
}
}

//定义一个具体的学生类
class Student extends Person {
public void study() {
System.out.println("Good Good Study,Day Day Up");
}
}
public class PersonTest {
public static void main(String[] args)
{
PersonDemo pd = new PersonDemo();
Person p = new Student();//子类对象作为抽象类的参数
pd.method(p);
Person p1 = pd.getPerson();
p1.study();
}
}


接口的
interface Love {
public abstract void love();
}

class LoveDemo {
public void method(Love l) { //l; l = new Teacher();  Love l = new Teacher(); 多态
l.love();
}
public Love getlove()
{
return new Teacher();//返回的是该接口的实现类的对象
}
}

//定义具体类实现接口
class Teacher implements Love {
public void love() {
System.out.println("爱教学");
}
}

class TeacherTest {
public static void main(String[] args) {
//需求:我要测试LoveDemo类中的love()方法
LoveDemo ld = new LoveDemo();
Love l = new Teacher();
ld.method(l);//形式参数 是实现类对象
Love l1 = ld.getlove();//返回的是该接口的实现类的对象
l1.love();
}
}


2、包

(1)其实就是文件夹,功能相似的类放在一块
(2)作用:
区分同名的类,同一个包,类名不同,不同的包,类名相同。
(3)包的定义(掌握)
package 包名;
多级包用.分开。


包声明应该在源文件的第一行,每个源文件只能有一个包声明,这个文件中的每个类型都应用于它。

如果一个源文件中没有使用包声明,那么其中的类,函数,枚举,注释等将被放在一个无名的包(unnamed package)中。

(4)dos命令编译运行

a:编写一个带包的java文件

b:javac编译的时候带上-d . 即可。注意空格

比如: javac -d . HelloWorld.java

c:回到和包根目录在同一目录的地方,然后带包运行

java cn.csdn HelloWorld

3:导包和c语言中#include相同

(1)Java提供一个关键字import用来导包。
(2)格式:
import 包名...类名;
另一种:
import 包名...*;(不建议)
导入的类须是public的
(3)package,import,class声明的先后顺序
package > import > class
package:只能有一个
import:可以有多个
class :可以有多个,以后建议是一个,每一个类是一个独立的单元


4:权限修饰符



(1)分类:
权限修饰符:private,默认,protected,public
状态修饰符:static,final
抽象修饰符:abstract
(2)常见的类及其组成的修饰
类:
默认,public,final,abstract
常用的:public
成员变量:
private,默认,protected,public,static,final
常用的:private
构造方法:
private,默认,protected,public
常用的:public
成员方法:
private,默认,protected,public,static,final,abstract
常用的:public


6:内部类

(1)把类定义在另一个类的内部,该类就被称为内部类。
举例:把类B定义在类A中,类B就被称为内部类。
(2)内部类的访问规则
A:可以直接访问外部类的成员,包括私有
B:外部类要想访问内部类成员,必须创建对象
(3)内部类的分类
A:成员内部类
B:局部内部类 在方法内部定义
(4)成员内部类
A:private 为了数据的安全性
B:static 为了访问的方便性
静态内部类只能访问外部类的静态成员数据。
成员内部类不是静态的:
外部类名.内部类名 对象名 = new 外部类名.new 内部类名();
成员内部类是静态的:
外部类名.内部类名 对象名 = new 外部类名.内部类名();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java