当前位置: 首页 > news >正文

JavaSE面向对象(中)

Java 变量

Java 变量相当于“容器”,用来存储程序运行过程中的数据值。

  • 数据类型分为2种
    基本数据类型和引用数据类型
  • 按作用域可分为3类:
    局部变量、成员变量(实例变量)、静态变量(类变量)

局部变量

在方法、构造方法或语句块中声明的变量。
特点:

  • 只能在当前方法或代码块中使用
  • 在方法执行时创建,方法结束时销毁
  • 没有默认值,必须手动初始化
  • 不能使用访问修饰符(如 publicprivate
  • 存储在栈中

示例:

public class LocalVariable {public static void main(String[] args) {int a = 10;int b = 10;int c = a + b;System.out.println(c);}
}

成员变量

在类中声明,在方法外。
特点:

  • 属于对象(实例),通过对象名访问
  • 对象创建时分配内存,对象销毁时释放
  • 可以使用访问修饰符
  • 默认值(0、false、null 等)
  • 通常设置为 private,通过方法访问

示例:

public class InstanceVariable {int a = 666;public static void main(String[] args) {InstanceVariable iv = new InstanceVariable();System.out.println(iv.a);}
}

静态变量

使用 static 关键字声明,属于类而非对象
特点:

  • 所有对象共享同一份数据
  • 可直接用“类名.变量名”访问
  • 存储在静态区
  • 在程序开始时创建,程序结束时销毁
  • 默认值与实例变量相同

示例:

public class StaticVariable {static int data = 668;public static void main(String[] args) {System.out.println(StaticVariable.data);}
}

常量

定义:使用 final 关键字修饰的成员变量,值不可改变。
作用:

  • 表示固定不变的数值
  • 提高代码可读性和可维护性
  • 常量名必须大写
类型关键字作用范围是否有默认值生命周期存储位置
局部变量方法或代码块内部❌ 否方法执行期间
成员变量整个类(实例)✅ 是对象存活期
静态变量static整个类(共享)✅ 是程序运行期静态区
常量final类或实例✅ 是程序运行期常量区

局部变量短命、成员变量随对象、静态变量随类、常量永不变。

以下是上文内容的核心提炼与结构化总结👇

Java 中的方法

  • 方法是实现代码复用性的机制。
  • 只在被调用时执行。
  • Java 程序的入口是 main() 方法。
  • 方法能提升可读性与维护性,通过封装逻辑来复用。

方法的声明组成

方法的定义包含多个部分:

部分含义
访问权限控制可见性:
public:所有类可访问
private:仅类内可访问
protected:同包或子类可访问
默认(无修饰符):仅同包可见
返回类型方法返回的数据类型(或 void 表示无返回值)
方法名最好是动词,小写开头,采用驼峰命名法,如:sum()stringComparison()
参数包括参数类型与名称,可有多个,用逗号分隔
方法签名方法名 + 参数列表,用于区分方法(支持重载
方法体花括号 {} 包裹的代码块,实现具体逻辑

方法的类型分类

在这里插入图片描述

(1)预先定义方法(标准库方法)

  • Java 自带大量可直接使用的方法(如 println()length()equals() 等)。
  • 提供于 JDK 的类库中,如 java.lang.Stringjava.util.* 等。
  • 优点:提高开发效率,减少重复造轮子。
public class PredefinedMethodDemo {public static void main(String[] args) {System.out.println("一成在成长");}
}

(2)用户自定义方法

  • 当标准库方法不满足需求时,自行定义。
  • 示例:判断数字奇偶性
public static void findEvenOdd(int num) {if (num % 2 == 0)System.out.println(num + " 是偶数");elseSystem.out.println(num + " 是奇数");
}

调用方式:

public class EvenOddDemo {public static void main(String[] args) {findEvenOdd(1);findEvenOdd(2);}
}

若方法为 static,说明属于类的,不属于类实例,可直接通过类名调用,无需创建对象。

实例方法

  • 没有 static 修饰的方法。
  • 属于对象,调用前必须先创建实例。
public class InstanceMethodExample {public int add(int a, int b) {return a + b;}public static void main(String[] args) {InstanceMethodExample result = new InstanceMethodExample();System.out.println(result.add(1, 2));}
}

Getter / Setter 方法

  • 用于访问私有变量(private 修饰)。
public class Person {private String name;public String getName() {return name; }public void setName(String name) {this.name = name; }
}

静态方法

  • 使用 static 修饰,属于类而非对象。
  • 可直接通过类名调用。
  • 常用于工具类(如 Hutool、Apache Commons)。
public class StaticMethod {public static int add(int a, int b) {return a + b;}public static void main(String[] args) {System.out.println(add(1, 2));}
}

静态方法可以简化调用、减少对象创建,是工具方法的常用模式

抽象方法

  • 没有方法体,仅定义方法签名。
  • 必须位于抽象类中,用 abstract 修饰。
  • 子类必须重写抽象方法。
abstract class Abstract {abstract void display();
}public class MyAbstract extends Abstract {@Overridevoid display() {// 重写了抽象方法System.out.println("重写了抽象方法");}
}
类型关键字是否属于类是否必须实例化调用是否可重写示例
实例方法getName()
静态方法staticMath.max()
抽象方法abstract否(必须在抽象类中)需子类实现必须重写display()

方法是 Java 程序的“行为单元”,分为实例方法、静态方法、抽象方法三类

构造方法与普通方法的区别

对比项构造方法(Constructor)普通方法(Method)
作用用来创建对象并初始化成员变量用来定义对象的行为(功能)
名称必须与类名完全相同可以任意命名(遵循命名规范)
是否有返回类型❌ 没有返回类型,连 void 都不能写✅ 必须有返回类型(可为 void 或具体类型)
调用方式在使用 new 创建对象时自动调用通过对象名或类名显式调用
是否可继承/重写❌ 不可继承、不可重写(但可重载)✅ 可继承,可重载或重写
修饰符限制通常是 publicprivate(控制实例化权限)可以使用任何访问修饰符
是否属于类属于类,但与静态方法不同,必须通过对象构造触发可是实例方法或静态方法

构造方法负责造对象(初始化),普通方法负责**“让对象干活”**(执行行为)。

构造方法的示例

public class Person {private String name;private int age;// 构造方法public Person(String name, int age) {this.name = name;this.age = age;}// 普通方法public void sayHello() {System.out.println("你好,我是 " + name + ",今年 " + age + " 岁。");}public static void main(String[] args) {Person p = new Person("一成", ); // 调用构造方法p.sayHello(); // 调用普通方法}
http://www.dtcms.com/a/474481.html

相关文章:

  • 保健品网站源代码代理平台什么意思
  • 做网站签了合同后不想做了办公室装修公司哪里好
  • 网站建设和网络优化网站建设对网络营销有哪些影响
  • wordpress导入网站文章西安seo专员
  • 大学城网站开发公司深圳企业网页设计公司
  • commons-configuration2(配置管理库)
  • 处理Git错误:“invalid object [hash]”和“unable to read tree [hash]”
  • MySQL数据库 常用命令整理
  • 前端开发 - 实时智能回复
  • 对电子商务网站建设与维护的总结wordpress多选展示表单
  • 从零起步学习MySQL || 第二章:DDL语句定义及常见用法示例
  • Oracle REST Data Services是什么?
  • [吾爱大神原创工具] windows 多窗口同步软件(键+鼠) 20251011 更新
  • TDengine 数学函数 COS 用户手册
  • qfd 网站开发wordpress 上传主题 ftp
  • 算法与数据结构——排序算法大全
  • 吕口-反射薄利多销AI入口算法系统方案
  • Python全方位指南:定义、应用与零基础入门实战
  • Iperius Backup Full(备份恢复软件) 多语便携版
  • 建站平台在线提交功能wordpress 访问慢
  • 《深入理解Java虚拟机JVM高级特性与最佳实践》
  • 昆明模板建站定制网站网页设计公司哪个好
  • 语义与认知中的循环解释悖论及其对人工智能自然语言处理的深层语义分析的影响和启示
  • 可以做硬件外包项目的网站网站建设的发展目标
  • 地产网站建设互动营销网站兼容手机代码
  • 【AI编程】腾讯AI编程神器 CodeBuddy从使用到项目实战详解
  • JavaEE 初阶第二十九期:HTTP协议深度揭秘(三)
  • ReentrantLock中的Condition
  • 基于Spring Boot + Vue 3的乡村振兴综合服务平台架构设计与实现
  • 专门做门的网站软件开发公司专业的有哪些