Java Day13 小结

Java Day13 小结

1)内部类分为哪些?请代码体现
class Outer{
public static class Inner{
public void method(){
System.out.println(“我是成员内部类”);
}
}
public void show(){
class Inner2{
public void show2(){
System.out.println(“我是局部内部类”);
}
}
Inner2 i = new Inner2();
i.show2();
}

}
//测试类
class Demo{
public static void main(String[]args){
Outer.Inner oi = new Outer.Inner();
oi.method();
Outer o = new Outer();
o.show();

}

}
2)带包(package)的类有几种方式编译?请代码体现
方试一
同一包下:package com.qianfeng;
class HelloWorld{
public static void main(String[] args){
System.out.println(“6666!”) ;
}
}
方式二
不同包下:
import com.qianfeng.Demo;
class Test{
public static void main(String[] args){
Demo d = new Demo() ;
int result = d.sum(10,20) ;
System.out.println(“result:”+result) ;
}
}

package com.qianfeng;
public class Demo{
public int sum(int a,int b){
return a+b ;
}
}

3)有关public,private,protected,默认 修饰符他们的优先级是什么样的,请代码举例说明

同一类中 : public, protected, 默认, private
同一包中,其他类: public, protected, 默认
不同包子类 : public, protected
不同包其他类: public
package com.qianfeng;
public class Father{
//有一些成员方法
//public修饰符的
public void show1(){
System.out.println(“public show1”);
}

 void show2(){
	System.out.println(" show2");
}
//受保护的
protected void show3(){
	System.out.println(" protected show3");
}

//私有的
private void show4(){
	System.out.println(" private show4");
}

public static void main(String[] args){
	//创建Father类对象
	Father f = new Father() ;
	f.show1();
	f.show2();
	f.show3();
	f.show4();
}

}

package com.qianfeng;
class Son extends Father{

public static void main(String[] args){
	//创建Father对象
	Father f = new Father() ;
	f.show1();
	f.show2();
	f.show3();
	//f.show4(); //私有的不能被继承,只能在本类中访问
	
	//创建Son类对象
	Son s = new Son() ;
	s.show1();
	s.show2();
	s.show3();
	s.show4();  //  s.show4();
}

}
package cn.leiyujie;
import com.qianfeng.Father; //导包

class Son2 extends Father{
public static void main(String[] args){
Son2 s = new Son2() ;
s.show1();
// s.show2(); //show2() 默认的 修饰符
s.show3();
//s.show4();//show4() 私有的
}
}
package liubo;
class Test{
public static void main(String[] args){

	//创建Fateher类对象
	Father f = new Father() ;
	f.show1();//公共的
	//f.show2();//默认的	访问权限不够大
	//f.show3();//受保护的在 Father 中是 protected 访问控制     	是通过子类访问的	
	//f.show4();//私有的	//本类访问
}

}

4)方法的形式参数和返回值是引用类型,如具体类,抽象类,接口类型的情况是什么样的?请分别举例说明!

形参引用类型:
具体类:
class Student{
public void study(){
System.out.println(“学习.”) ;
}
}
class StudentDemo{
public void show(Student s){
s.study() ;
}
}
//测试类
class StudentTest{
public static void main(String[] args){
StudentDemo sd = new StudentDemo();
Student student = new Student();
sd.show(student) ;
}
}

抽象类:
abstract class Person{
public abstract void love();
}
class PersonDemo{
public void method(Person p){ Person p = new Woker();
p.love() ;
}
}
class Worker extends Person{
public void love(){
System.out.println(“Java”) ;
}
}
//测试类
class PersonTest{
public static void main(String[] args){
PersonDemo pd = new PersonDemo() ;
Person person = new Worker() ;
pd.method(person) ;
}
}
接口:
interface Work{
void teach() ;
}
class TeacherDemo{
public void function(Work w){
w.teach() ;
}
}
class Teacher implements Work{
public void teach(){
System.out.println(“Java”) ;
}
}
class TeacherTest{
public static void main(String[] args){
TeacherDemo td = new TeacherDemo() ;
Work work = new Teacher();
td.function(work);
}
}
返回值为引用类型
1.具体类:
class Student{
public void study(){
System.out.println(“学习”) ;
}
}
class StudentDemo{
public Student method(){
Student s = new Student() ;
return s ;
或return new Student() ;
}
}
//测试类
class PersonTest2{
public static void main(String[] args){
StudentDemo sd = new StudentDemo() ;
Student s = sd.method() ;
s.study() ;
//或链式编程
StudentDemo sd2 = new StudentDemo() ;
sd2.method().study() ;
}
}
2.抽象类:
bstract class Worker{
public abstract void work() ;
}
class WorkDemo{
public Worker show(){
Worker worker = new Employee() ;
return worker;
或者:return new Employee() ;//匿名对象
}
}
class Employee extends Worker{
public void work() {
System.out.println(“123”) ;
}
}
//测试类
class WorkTest{
public static void main(String[] args){
WorkDemo wd = new WorkDemo() ;
Worker w = wd.show() ;
w.work() ;
}
}
3.接口:
interface SpeakEnglish{
public abstract void speak() ;
}
class TeacherDemo{
public SpeakEnglish function(){
return new Teacher();
}
}
class Teacher implements SpeakEnglish{
public void speak(){
System.out.println(“123231”) ;
}
}
//测试类
class TeacherTest2{
public static void main(String[] args){
TeacherDemo td = new TeacherDemo() ;
SpeakEnglish se = td.function() ;
se.speak() ;
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值