Java -NCUT
Java -NCUT
2.抽象封装和类
2.1类的格式
[类的修饰符] class 类名称 [extends 父类名称][implements 接口名称列表]
{
属性定义及初始化;
方法定义及方法体;
}
类的修饰字: [ public |default(可缺省,非公开类)] [abstract | final ]
public:允许其他类(没有限制)访问本类,一个源文件仅可以有一个public类,且与文件同名。
default(缺省):可被当前包中的其他类访问;
abstract:不能实例化的抽象概念类
final:不能再扩展,不包含子类的类;体现安全性,或固定功能
每个类都拥有自己的名字空间,即指类及其方法和变量可以在一定的范围内知道彼此的存在,可以使用。
父类继承声明:extends 父类名(见继承)
实现接口(interface):implements 接口名
abstract抽象类vs.final
最终类派生子类vs.不能派生子类
例:
public final class Card201
{
…
}
在不符合要求时退出:
PhoneCard(long cn, int pw, double b,String s)
{
cardNumber = cn;
password = pw;
if ( b > 0 )
balance = b;
else
System.exit(1);//在这里直接退出了
connectNumber = s;
connected = false;
}
2.2对象
实例化对象-初始化对象
类名 对象引用名 = new 构造方法();
例:Employee emp = new Employee(…);
2.3 static
2.3.1静态属性
Java采用单继承机制,即每个类只能有一个父类。
static-静态修饰符,可以修饰类中的属性与方法:
静态属性(类属性):被static修饰的属性,是类的属性,不属于任何对象,位于类的内存区域中,为该类所有对象共享,相对的,无static修饰的属性为对象属性。
静态属性的访问(访问的是相同的内存单元):
类名.属性名(建议用这个)
或:对象名.属性名
2.3.2静态初始化器
静态初始化器就是关键字static引导的一对大括号,括起的语句组完成类的初始化的工作。
例:
class PhoneCard{
long cardNumber;
static long nextCardNumber;
static{
nextCardNumber = 2001800001;
}
}
静态初始化器与构造函数的区别?
- 构造函数是对每个新对象初始化,而静态初始化器是对类进行初始化
- 构造函数是用new运算符产生新对象时由系统自动执行,静态初始化器是类加载入内存时由系统调用执行
- 静态初始化器不是方法
- 没有方法名、返回值和参数列表
2.3.3最终属性
最终属性:用final 修饰符定义的属性,值不能被修改,相当于一个常量。对象的final属性值都一样,为节省空间,final属性通常又被同时声明为static(静态属性)
例:
static final int c_minSalary = 800 ;
- Integer类静态属性例:
- MIN_VALUE 该属性(常量)代表整型数的最小值
- MAX_VALUE 该属性(常量)代表整型数的最大值
- System类静态属性例:
- in(该属性为InputStream类型)表示标准输入(键盘)
- out(该属性为PrintStream类型)表示标准输出(显示器)
- 测试例:
public class Test {
public static void main(String[] args){
System.out.println(Integer.MIN_VALUE); // -2147483648
System.out.println(Integer.MAX_VALUE); // 2147483647
}
}
2.4 方法
格式:
[修饰符] 返回类型 方法名([参数列表]) [throws 例外]
{方法定义}
方法的使用:对象名.方法名 或 类名.方法名
定义函数:
public class Pra{
public static void main(String[] args){
int count=1;
for(int i = 1;i < 1000; i++){
if(isPerfect(i)){
System.out.print(i+String.valueOf('\t'));
count++;
if(count % 3 == 0)
System.out.println();
}
}
}
static boolean isPerfect(int x){
int y = 0;
for(int i = 1; i < x; i++)
if(x % i == 0)
y += i;
return y == x;
}
}
方法体:
-
在方法中定义的变量称为局部变量
-
生命周期:执行进入方法体时建立,退出方法时撤消
-
局部变量使用之前必须初始化
-
-
方法体可以访问所有的类属性,可调用所有类的方法
方法的参数
- 要有名有型,参数的作用域在本方法中
- 可以像属性及方法体内定义的变量那样使用参数
- 方法的参数采用实参向形参的赋值
3.工具类和算法
3.1 String
Concat
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现