package关键字 权限修饰符 内部类

package关键字的概述及作用:

package包的作用

包其实就是文件夹

包的作用是将字节码(.class)进行分类存放

包的作用可以使在同一个项目中有相同的类

包的作用有利于以后功能模块的划分

定义包的格式

包名一般用公司域名的倒写

.www.baidu.com的域名

包名写成com.baidu.功能模块名(com.baidu.student)

wwww.alibaba.com

com.alibaba.user

包注意事项和包的类使用-(import关键字)

定义包的注意事项

 ①通过eclipse创建包,然后在包下面创建的java文件,默认会在第一行加入 package代码

如果在一个包的类中使用另一个包的类,需要使用import导入包的类

如:import com.baidu.model.Student

package语句必须是放在第一行的代码位置

package语句在一个java文件中只能有一个 

项目中的srcbin目录区别:

src是源代码

bin存放编译后的class文件

 


import关键字概述

import关键字是用来导入类的

import使用的两种方式

1.import com.baidu.model.Student 只导入一个类

2.import com.baidu.model.* 导入包的所有类,不建议使用这种方法

创建类的另一种方式,在类名前加包名

com.baidu.model.Student stu = new com.baidu.model.Student();

java.util.Scanner s = new java.util.Scanner(System.in)

包的类能被其它包访问,一定是public的类,pulbic修饰的类代表其它包可以访问此类

 

面试题:package,import,class有没有顺序关系?

package只能有一个,必须放在java文件的第一行

import只能放在package的下面,多个import应放在一起

class 放在 package 或者import的下面

 

四种权限修饰符图表


所谓的权限就是别人是否能访问类、属性、方法

主要先掌握privatepublic就可以了

一般写方法时,最好写上private或者public

写类的时候,会在类名前加public

 

常见修饰符

权限修饰符:private,默认的,protectedpublic

状态修饰符:staticfinal

抽象修饰符:abstract

 

用在身上的修饰符

权限修饰符:默认修饰符,public

状态修饰符:final

抽象修饰符:abstract

用的最多的就是:public

 

 

用在成员变量身上的修饰符

权限修饰符:private,默认的,protectedpublic

状态修饰符:staticfinal

用的最多的就是:private

 

用在构造方法的修饰符

权限修饰符:private,默认的,protected,public

用的最多的就是:public

 

用在成员方法的修饰符

权限修饰符:private,默认的,protectedpublic

状态修饰符:staticfinal

抽象修饰符:abstract

用的最多的就是:public

成员方法:

public static

 public abstract

 public final

成员变量:public static final

 

protected 受保护的

protected修饰的方法只能在当前包中访问,或者子类访问

 

内部类概述和访问特点

内部类概述:

就是在类内部再声明类

内部类访问特点

1.内部类可以直接访问外部类的成员,包括私有。

2.外部类要访问内部类的成员,必须创建对象。

内部类对象的创建语法

1.外部类名.内部类名 对象名 = 外部类对象.内部类对象;

2.开发中自己声明个内部类比较少用,用的多的就是集合中的遍历

 

import java.io.*;
class test  
{
	public static void main (String[] args) throws java.lang.Exception
	{
		System.out.println("hi");
		Outer.Inner s = new Outer().new Inner();
		s.test1();
	}
}


class Outer{
    private int a = 5;
    class Inner {
        public void test1(){
            System.out.println(a);
        }
    }
    
}

 

静态内部类的使用 【了解】

成员内部类被静态修饰后的访问方式是:

外部类名.内部类名 对象名 = 外部类名.内部类对象;

 

局部内部类访问局部变量的问题

局部内部类访问局部变量必须用final修饰

局部内部类在访问他所在方法中的局部变量必须用final修饰,为什么?

因为当调用这个方法时,局部变量如果没有用final修饰,他的生命周期和方法的生命周期是一样的,当方法弹栈,这个局部变量也会消失,那么如果局部内部类对象还没有马上消失想用这个局部变量,就没有了,如果用final修饰会在类加载的时候进入常量池,即使方法弹栈,常量池的常量还在,也可以继续使用

但是jdk1.8取消了这个事情,所以我认为这是个bug

 

匿名内部类的格式和理解

Ø匿名内部类就是内部类的简化写法

Ø匿名内部类前提是存在一个抽象类或者接口

Ø匿名内部类格式: 

   new 抽象类或者接口名(){ 重写方法; }

Ø匿名内部类本质是什么呢?  

   是一个继承了该类或者实现了该接口的子类匿名对象

Ø匿名内部类的特点

   匿名内部类必须实现接口的所有方法

   匿名内部类必须实现抽象类的所有方法

Ø匿名内部类的方法调用

   像普通对象一样,调用方法即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值