二、面向对象--2
(一)深入变量
128、变量的分类-作用域-初始值
定义变量的语法格式:数据类型 变量名 = 值;
定义位置不同,分为:
成员变量:全局变量/字段(field),不要称为属性,直接定义在类中,方法外面。分为:
1)类成员变量:使用static修饰的字段
2)实例成员变量:没有使用static修饰的字段
局部变量:变量除了成员变量,其他的都是 局部变量
1)方法内部的变量
2)方法的形参
3)代码块中的变量,一对{}
变量的初始值:初始化才会在内存中开辟空间
成员变量:默认是有初始值的
局部变量:没有初始值,所以必须先初始化,才能使用
变量的作用域:变量根据定义的位置不同,也决定了 各自的作用域是不同的。看变量所在的那对{}
成员变量:在整个类中都有效
局部变量:在开始定义的位置开始,到紧跟着结束的}为止
成员变量可以先使用,后定义;局部变量必须先定义后使用
129、变量的生命周期和选用
(二)封装思想
130、package关键字
编译命令:javac -d . java文件.java 如:javac -d . PackageDemo.java
运行命令:java 包名.类名 如:java abc.PackageDemo
131、package最佳实践
1)包名如何定义:包名必须遵循标识符规范(全部小写)。自定义的包名不能以java.打头,因为java的安全机制会检查
企业开发中,包名采用公司域名倒写:如:520it.com----->com.520it(此时不符合标识符规范,我们可以使用下划线_),在Android中,如果包名使用了下划线,则不能部署到模拟器上。此时我们也可以使用一个字母来代替下划线,比如:package com.m520it
格式:package 域名倒写.模块名.组件名
package com._520it.pss.util;----------->进销存模块中专门存储工具类的包
2)类的名称
类的简单名称:定义类的名称 PackageDemo
类的全限定名称:包名.类名 package com._520it.hello.PackageDemo
3)在开发中都是现有package而后在package中
java(JDK)中的包名
132、import关键字
当A类和B类不在同一个包中,若A类需要使用B类,此时就得让A类中去引入B类
Arrays类的全限定名:java.util.Arrays
没有使用import之前。操作不在同一个包中的类,得使用全限定名来操作
class ImportDemo
{
public static void main(String[] args)
{
//
int[] arr = new int[]{1,2,-3,4,5,-6};
//打印数组
String ret = java.util.Arrays.toString(arr);
System.out.println("直接打印数组:" + ret);
//排序打印
java.util.Arrays.sort(arr);
ret = java.util.Arrays.toString(arr);
System.out.println("排序后打印数组:" + ret);
}
}
解决方案:使用import语句,直接把某个包下的类导入到当前类中
语法格式: import 需要导入类的全限定名;如:import java.util.Arra