java学习

package和import

1、命名建议:

域名是全球唯一的。
    
域名反写    .    项目名称    .    模块名称      .    类名
com.baidu  .    aproject   .    studentmanager  . 
com.taobao .    aproject   .    teachermanager  .

2、package

​ 1)作用:避免类名 的冲突

​ 2)包名可以有层次结构,同包中的类不能同名

​ 3)类的全称:包名.类名,同包中的类不能重名

​ 4)建议:包名所有字母都小写

3、import

​ 1)同包中的类可以直接访问,不同包的类不能直接访问,想访问有以下两种方式:

​ 1.1)先import声明类再直接使用类------建议

​ 1.2)类的全称------太繁琐、不建议,想要使用哪个类,直接使用类名称

访问控制修饰符

1、修饰符共有四种类型:

​ 1)public:公开的,任何类

​ 2)private:私有的,本类用

​ 3)protected:受保护的,本类、派生类、同包类

​ 4)默认的:什么也不写,本类、同包类

2、说明:

​ 2.1)类的访问修饰符只能是public或默认的

​ 2.2)类中成员的访问修饰符如以上四种都可以

修饰符本类同一个包类继承类其他类
public可以访问可以访问可以访问可以访问
protected可以访问可以访问可以访问不可以访问
默认可以访问可以访问不可以访问不可以访问
private可以访问不可以访问不可以访问不可以访问

3、使用

1)数据:私有(派生类的)、受保护的(超类)

​ 2)行为:公开

final(了解)

1、作用:最终的、不可变的

2、修饰成员变量:变量不可被改变,两种方式初始化:

​ 1)声明同时初始化

​ 2)构造函数中初始化

3、修饰方法:方法不能被重写

4、修饰类:类不能被继承

static

1、静态变量

​ 1)成员变量与静态变量的区别:

​ 1.1)实例变量:没有static修饰,属于对象的,存储在堆中;有几个对象就有几份

​ 1.2)静态变量:由static修饰,属于类,存储在方法区中;只有一份

​ 2)常通过类名点来访问

3)何时用:所有对象所共享的数据(图片、音频、视频等)
2、静态方法

​ 1)由satic修饰

​ 2)属于类的,存储在方法区中,只有一份

​ 3)常通过类名点来访问

4)静态方法没有隐式this传递,没有this意味这没有对象,而实例对象必须通过对象点来访问

​ 所以在静态方法中不能直接访问实例成员

注意:static是静态的修饰,不能直接访问实例变量,由于没有this,存储的位置在方法区中,加载一次

​ 静态用类名点来访问

5)何时用:方法的操作仅与参数相关而与对象无关
#实例方法
Scanner san = new Scanner(system.in);
int a = san.nextInt();
double b = san.nextDouble();
#静态方法
double c = Math.Random();
int[] a1 = Arrays.copyOf(a,6);
Arrays.sort(arr);
3、静态块

​ 1)属于类的代码块,在类加载期间执行的代码块,只执行一次,可以用来在软件中加载静态资源;类只被加载一次,所以静态块只执行一次

​ 2)何时用:常用于加载/初始化静态资源(图片、音频、视频、标题 等)

public class Static1Demo {
	public static void main(String[] ages) {
		Static1Demo o = new Static1Demo();
		Static1Demo o1 = new Static1Demo();
		
		
	}
	static {
		System.out.println("hello world");
	}
	Static1Demo(){
		System.out.println("111");
	}
}
显示结果:
显示一次static中的内容
4 、内存管理:

​ 1)堆:new出来的对象(包括实例变量)

​ 2)栈:局部变量(包括方法的参数)

​ 3)方法区:.class字节码文件(包括方法、静态变量)

static final常量

1、概述
1)static final 修饰的成员变量成为常量,必须声明同时初始化,不可被改变

​ 2)static final常量会在编译期替换

2、注意事项

​ 1)必须声明同时初始化

2)类名点来访问、不能被改变

​ 3)建议:常量名所有字母都大写,多个单词之间用_分隔

​ 4)编译器在编译时将常量直接替换为具体的值,效率高

​ 5)用途:为程序设计状态(停止、运行中、运行完毕)等

public static final int a = 50;
private static final double a;//编译错误,常量必须要赋初值

抽象类 – 不完整类

1、作用:为子类中的方法提供一个入口
2、如果子类中都存在该方法,并且程序结构都不一样,则设计为抽象类
3、修饰词:abstratct,如果子类中的方法设计为抽象方法,则该类在class前加上abstract修饰词;如果父类为抽象类,则子类必须进行重写

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值