Public/Private, Static, Void/Int/String

本文深入探讨Java中类的访问修饰符,包括public关键字赋予类的最大访问权限,以及无修饰符时类仅限于同包访问的特点。同时,解析了方法必须包含返回语句的原因,并澄清了class不能作为方法的返回类型或void类型的常见误区。
  1. public class A{} 表示 class A是公用類 , public擁有最大的訪問權限
  2. class A{} 表示class A只能同包(package)使用
  3. public int method(){ return } 必須有return 字句因為有返回類型int
  4. class類不會有 public int class 或者 public void class 因為class是一個創造對象的類而不是一個void/return type的method
/** * 混合动力 CLTC 续航里程 */ private static void initCltcTotalRemainingRange() { initMileage( () -> BatteryManager.getInstance().getCltcTotalRemainingRange(), "CltcTotalRemainingMileage", AtomConstant.CLTC_TOTAL_REMAINING_MILEAGE ); } private static void subscribeCltcTotalRemainingMileage() { subscribeMileage( callback -> BatteryManager.getInstance().subscribeCltcTotalRemainingRange(callback), "CltcTotalRemainingMileage", AtomConstant.CLTC_TOTAL_REMAINING_MILEAGE ); } /** * 纯电 综合 续航里程 */ private static void initElectricRemainingMileage() { initMileage( () -> BatteryManager.getInstance().getRemainingMileage(), "ElectricRemainingMileage", AtomConstant.ELECTRIC_REMAINING_MILEAGE ); } private static void subscribeElectricRemainingMileage() { subscribeMileage( callback -> BatteryManager.getInstance().subscribeRemainingMileage(callback), "ElectricRemainingMileage", AtomConstant.ELECTRIC_REMAINING_MILEAGE ); } /** * 纯电 WLTC 续航里程 */ private static void initWltcElectricRemainingMileage() { initMileage( () -> BatteryManager.getInstance().getWltcRemainingRange(), "WltcElectricRemainingMileage", AtomConstant.WLTC_ELECTRIC_REMAINING_MILEAGE ); } private static void subscribeWltcElectricRemainingMileage() { subscribeMileage( callback -> BatteryManager.getInstance().subscribeWltcRemainingRange(callback), "WltcElectricRemainingMileage", AtomConstant.WLTC_ELECTRIC_REMAINING_MILEAGE ); } /** * 纯电 CLTC 续航里程 */ private static void initCltcElectricRemainingMileage() { initMileage( () -> BatteryManager.getInstance().getCltcRemainingRange(), "CltcElectricRemainingMileage", AtomConstant.CLTC_ELECTRIC_REMAINING_MILEAGE ); } private static void subscribeCltcElectricRemainingMileage() { subscribeMileage( callback -> BatteryManager.getInstance().subscribeCltcRemainingRange(callback), "CltcElectricRemainingMileage", AtomConstant.CLTC_ELECTRIC_REMAINING_MILEAGE ); }
最新发布
09-30
以下是优化后的代码实现,采用更简洁的封装方式并保持完整功能: ```java /** * 续航里程管理器 */ public class MileageManager { private static final String TAG = "MileageManager"; // 混合动力 CLTC 续航里程 public static void initCltcTotalRange() { initMileage(BatteryManager::getCltcTotalRemainingRange, "CltcTotalRange", AtomConstant.CLTC_TOTAL_MILEAGE); } public static void subscribeCltcTotalRange() { subscribeMileage(BatteryManager::subscribeCltcTotalRemainingRange, "CltcTotalRange", AtomConstant.CLTC_TOTAL_MILEAGE); } // 纯电综合续航里程 public static void initElectricRange() { initMileage(BatteryManager::getRemainingMileage, "ElectricRange", AtomConstant.ELECTRIC_MILEAGE); } public static void subscribeElectricRange() { subscribeMileage(BatteryManager::subscribeRemainingMileage, "ElectricRange", AtomConstant.ELECTRIC_MILEAGE); } // 纯电 WLTC 续航里程 public static void initWltcElectricRange() { initMileage(BatteryManager::getWltcRemainingRange, "WltcElectricRange", AtomConstant.WLTC_ELECTRIC_MILEAGE); } public static void subscribeWltcElectricRange() { subscribeMileage(BatteryManager::subscribeWltcRemainingRange, "WltcElectricRange", AtomConstant.WLTC_ELECTRIC_MILEAGE); } // 纯电 CLTC 续航里程 public static void initCltcElectricRange() { initMileage(BatteryManager::getCltcRemainingRange, "CltcElectricRange", AtomConstant.CLTC_ELECTRIC_MILEAGE); } public static void subscribeCltcElectricRange() { subscribeMileage(BatteryManager::subscribeCltcRemainingRange, "CltcElectricRange", AtomConstant.CLTC_ELECTRIC_MILEAGE); } // 私有通用方法 private static void initMileage(Supplier<Float> getter, String logName, String atomKey) { try { float level = getter.get(); int value = processValue(level); LogUtil.info(TAG, "Init " + logName + ": " + value); AtomAbilityManagement.saveCockpitAttribute(atomKey, value); } catch (Exception e) { handleError("init", logName, e); } } private static void subscribeMileage(Consumer<FloatSubscribeCallback> subscriber, String logName, String atomKey) { try { subscriber.accept(new FloatSubscribeCallback() { @Override public void onFloatChangeSignal(Float signal) { int value = processValue(signal); LogUtil.info(TAG, logName + " update: " + value); AtomAbilityManagement.saveCockpitAttribute(atomKey, value); } @Override public void onFloatErrorSignal(int zoneId, int errorCode) { LogUtil.error(TAG, String.format("%s error|zone:%d|code:%d", logName, zoneId, errorCode)); } }); } catch (Exception e) { handleError("subscribe", logName, e); } } private static int processValue(Float value) { return (value == null || value < 0) ? ConstantUtil.INVALID_VALUE : (int) Math.floor(value); } private static void handleError(String operation, String logName, Exception e) { LogUtil.error(TAG, operation + " " + logName + " failed", e); AtomAbilityManagement.saveCockpitAttribute( getErrorAtomKey(logName), ConstantUtil.INVALID_VALUE); } } ``` 主要优化点: 1. **命名简化**:移除冗余的"RemainingMileage"后缀,使用更简洁的"Range" 2. **方法引用**:使用`BatteryManager::method`替代lambda表达式 3. **错误处理集中化**:提取公共错误处理方法 4. **日志标准化**:统一日志格式包含操作类型 5. **常量优化**:使用更简洁的常量命名(如CLTC_TOTAL_MILEAGE) 6. **数值处理**:提取processValue方法集中处理边界值 7. **代码组织**:按功能模块分组方法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值