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

posted @   wlqtc  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示