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

Android手把手编写儿童手机远程监控App之JAVA基础

概述上节嘟宝工程Git配置。这节开始讲解java基础,学习Java语法糖。Java 是由 Sun Microsystems 公司于1995年5月推出的 Java 面向对象程序设计语言。Java 语言的语法与 C 语言和 C 语言很接近但也丢弃了 C 中很少使用的、很难理解的、令人迷惑的那些特性如指针、操作符重载、多继承、强制类型转换。特别是Java 语言不使用指针而是引用。并提供了内存回收机制使得程序员不必为内存管理而担忧但也带来java内存泄漏问题。java语言有以下特点Java语言是面向对象Java语言是安全Java 语言是解释型Java 语言是动态的Java语法糖打开嘟宝工程第四节讲解嘟宝工程详解项目只有一个HelloWorldActivity页面该页面在AndroidManifest当中被设置为启动页面如下代码activity android:name.HelloWorldActivity android:exportedtrue intent-filter action android:nameandroid.intent.action.MAIN / category android:nameandroid.intent.category.LAUNCHER / /intent-filter /activity我们将在HelloWorldActivity页面中学习java语法。类的概念在 Java 里class 是最核心的概念之一。如果用一句话说清楚class 自定义类型 数据属性 行为方法。如定义类Fish鱼有名字是属性游泳是方法。类是用来描述事物的类的实例就是对象对象即是数据。HelloWorldActivity 定义类Fish创建属性name创建方法swimpackage com.zilong.dubao; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; class Fish{ String name; void swim(){ Log.d(test,name会游泳); } } public class HelloWorldActivity extends AppCompatActivity { Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_hello_world); Fish fishnew Fish(); ish.name鲫鱼; fish.swim(); } }其他HelloWorldActivity 继承AppCompatActivity先不关心它是什么app打开首先调用onCreate函数。会执行Fish fishnew Fish(); fish.name鲫鱼; fish.swim();name是成员变量成员变量也有类型String name类型是字符串swim 是方法是函数他有函数体与返回值。返回值可以是void、String、int成员变量与方法还可标记用private 、public、protected标记。default (即默认什么也不写: 在同一包内可见不使用任何修饰符。使用对象类、接口、变量、方法。private : 内部可用public : 外部、内部可用protected :外部不可用继承子类可用。class Fish{ public String name; protected int price0; private float weight0; public void swim(){ add(); Log.d(test,name会游泳价格price体重weight); } private void add(){ price; weight; } }name外部可用price与weight内容函数可用。addPrice也只能内部可用。其中add函数当中Log.d(test,name会游泳价格price体重weight);,Log.d是andorid自带日志输出信息它传递两个参数一个是标签(用于过滤)一个是日志内容。运行andorid提示查看日志输出test标签作用是过滤。类中成员变量数据类型如name的类型是String 字符串price类型是 intint 数据类型是32位、有符号的以二进制补码表示的整数范围是-231到231-1short 数据类型是16位、有符号的以二进制补码表示的整数范围是-215到215-1long 数据类型是 64 位、有符号的以二进制补码表示的整数范围是-263到263-1byte 数据类型是8位、有符号的最小值是-127最大值127float 数据类型是单精度、32位、符合IEEE 754标准的浮点数double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数boolean数据类型表示一位的信息类的构造函数构造函数类的对象被定义时如Fish fishnew Fish();会被调用。构造函数可不写他与类名同可做成员变量数据初始化。class Fish{ public String name; protected int price; private float weight; Fish(){ name未知鱼; price0; weight0; } public void swim(){ addPrice(); addPrice(10); Log.d(test,name会游泳价格price体重weight); } private void addPrice(){ price; weight; } }类的继承如HelloWorldActivity继承自AppCompatActivity。Fish作为一个类还可以淡水鱼、海洋鱼这些都属于鱼可以继承自Fish。class Fish{ public String name; protected int price0; private float weight0; public void swim(){ addPrice(); addPrice(10); Log.d(test,name会游泳价格price体重weight); } private void addPrice(){ price; weight; } private void addPrice(int num){ pricenum; weightnum; } } class OceanFish extends Fish{ int age; }OceanFish 拥有Fish类中除用private标记的所有属性与方法。类的重载重载同一个类中可以有多个同名的方法但参数不同。包含构造函数如add函数class Fish{ public String name; protected int price0; private float weight0; public void swim(){ addPrice(); addPrice(10); Log.d(test,name会游泳价格price体重weight); } private void addPrice(){ price; weight; } private void addPrice(int num){ pricenum; weightnum; } }很容易理解add函数有两种状态。addPrice()与addPrice(int num)类的多态重载与多态的区别一个是类同一个类中可以有多个同名的方法但参数不同。一个是父类与子类具有同名函数。package com.zilong.dubao; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; class Fish{ public String name; protected int price; private float weight; Fish(){ name未知鱼; price0; weight0; } public void swim(){ addPrice(); addPrice(10); Log.d(test0,Fish类:name会游泳价格price体重weight); } private void addPrice(){ price; weight; } private void addPrice(int num){ pricenum; weightnum; } } class OceanFish extends Fish{ Override public void swim() { super.swim(); Log.d(test0,OceanFish类name会游泳价格price); } } public class HelloWorldActivity extends AppCompatActivity { Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_hello_world); OceanFish fishnew OceanFish(); fish.name鲫鱼; fish.swim(); } }OceanFish与Fish同有函数名称swim函数被称为多态在OceanFish 的swim函数中调用父类的swimsuper.swim();如在我们的HelloWorldActivity当中onCreate函数即是多态。类的接口接口即是回调函数程序设计时用的很多。简单理解调用fish.swim()函数,函数执行完之后需要告诉我一下。我在执行swim时传递一个接口(回调函数)swim执行完再调用这个接口。package com.zilong.dubao; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; class Fish{ public String name; protected int price0; private float weight0; public interface CB { void onSwim(); } Fish(){ name未知鱼; price0; weight0; } public void swim(CB cb){ addPrice(); addPrice(10); Log.d(test,name会游泳价格price体重weight); cb.onSwim(); } private void addPrice(){ price; weight; } private void addPrice(int num){ pricenum; weightnum; } } public class HelloWorldActivity extends AppCompatActivity { Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_hello_world); Fish fishnew Fish(); fish.name鲫鱼; fish.swim(new Fish.CB() { Override public void onSwim() { Log.d(test,Swim函数已经执行完成); } }); } }Fish定义接口CB,swim函数需要传递CB变量。fish被定义调用swim时创建new CB变量传递给swim函数。swim执行完成回调cb

相关文章:

Android手把手编写儿童手机远程监控App之JAVA基础

概述 上节嘟宝工程Git配置。这节开始讲解java基础,学习Java语法糖。Java 是由 Sun Microsystems 公司于1995年5月推出的 Java 面向对象程序设计语言。 Java 语言的语法与 C 语言和 C 语言很接近,但也丢弃了 C 中很少使用的、很难理解的、令人迷惑的那些特性&#x…...

如何5分钟完成DOL游戏汉化美化:终极整合包使用指南

如何5分钟完成DOL游戏汉化美化:终极整合包使用指南 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 想要体验完整汉化的Degrees of Lewdity游戏,但面对复杂的mod安装感到困惑&…...

保姆级教程:用Charades数据集复现行为识别模型(附PyTorch代码与避坑指南)

从零构建Charades行为识别模型:PyTorch实战与调优全攻略 在计算机视觉领域,行为识别一直是极具挑战性的研究方向。不同于静态图像分类,视频行为识别需要模型理解时间维度的信息变化,这对算法设计和工程实现都提出了更高要求。Char…...

开源中国完成 C+ 轮融资,冲刺「开源AI第一股」

4 月 10 日,开源中国宣布完成数亿元 C 轮融资,由上海国投先导基金领投,中国互联网投资基金、君联资本、联想创投、苏创投及贝克资本联合跟投。截至目前,开源中国累计融资规模已接近 20 亿元。 开源中国创立于 2008 年 8 月&#x…...

选用航美无漆实木进行全屋定制,享受家居的新体验

航美无漆实木作为一种家居新材料,以其天然素材和环保特性在现代家居中备受欢迎。其独特的无漆处理工艺,不仅保留了实木的自然纹理,还避免了有害物质的释放,提供健康的居住环境。同时,航美无漆实木拥有优良的耐用性和稳…...

代码随想录算法训练营第二天|leetcode209 长度最小的子数组 leetcode59 螺旋矩阵Ⅱ 58. 区间和

209. 长度最小的子数组 题目链接:209. 长度最小的子数组 - 力扣(LeetCode) 解题思路:利用快慢指针slow,fast进行区间的划分。最外层循环每次开始时都将fast进入到区间之中,当sum>target时,…...

贾子元稳定性定理(Kucius Meta-——贾子逆算子(Kucius Inverse Operator, KIO):TMM中的反规则算子(Inverse Rule Operator)定义、实现与应用

贾子元稳定性定理(Kucius Meta-——贾子逆算子(Kucius Inverse Operator, KIO):TMM中的反规则算子(Inverse Rule Operator)定义、实现与应用把“逆向能力”从评价指标 → 生成机制 → 推理算子。以下是可嵌…...

深入PCIe数据流:从No Snoop到TPH,图解现代I/O如何绕过CPU缓存瓶颈

PCIe数据流优化技术全景:从缓存一致性到直接缓存访问的架构演进 在数据中心和云计算基础设施中,I/O性能瓶颈已成为制约整体系统效率的关键因素。传统以内存为中心的I/O架构在面对NVMe SSD、100Gbps网络适配器等高速设备时,暴露出严重的延迟和…...

BlenderCompat系统兼容架构深度解析:Windows 7 API重定向技术实现原理

BlenderCompat系统兼容架构深度解析:Windows 7 API重定向技术实现原理 【免费下载链接】BlenderCompat Windows 7 support for Blender 3.x and newer 项目地址: https://gitcode.com/gh_mirrors/bl/BlenderCompat BlenderCompat项目通过创新的系统兼容架构设…...

破局性能与灵活性的博弈:Kuikly 动态化方案的场景实战与评估

在移动互联网进入存量竞争的时代,App 的业务迭代速度与用户体验之间往往存在着天然的“鱼和熊成鱼”的矛盾。为了实现业务的快速上线,开发者尝试了从 H5 到 React Native,再到 Flutter 的各种跨端动态化方案。然而,在追求极致性能…...

Hermes Agent 被锤抄袭,Claude 强制 KYC

前言这周AI圈有两件事挺值得聊:一是GitHub上获得8.5万Star的Hermes Agent被中国团队EvoMap实锤架构级抄袭,对方被锤后回应"你删号";二是Anthropic悄悄给Claude上了强制实名认证(KYC),国内用户直接…...

别再只用struct了!C++11/17中pair和tuple的5个实战场景与避坑指南

别再只用struct了!C11/17中pair和tuple的5个实战场景与避坑指南 在C开发中,我们常常需要将多个数据项组合成一个逻辑单元。传统做法是定义一个struct,但现代C提供了更轻量级的解决方案——std::pair和std::tuple。它们不仅仅是语法糖&#xf…...

拆解ERP批次库存管理逻辑:多仓库调拨与效期预警难题,这套saas平台功能设计如何落地

对于很多正处于扩张期的中小制造和贸易企业来说,上ERP类saas平台往往是被库存压垮的最后一根稻草之前的选择。什么是ERP类saas平台里最容易被忽视但又最要命的功能?不是花里胡哨的仪表盘,也不是复杂的财务结转,而是最基础的那套批…...

STM32点蜂鸣器

这是一个峰鸣器,GND接stm32的GND,VCC接3.3V,i/o接你设置的引脚代码如下void Bear_int(){GPIO_InitTypeDef Bear_initstruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);Bear_initstruct.GPIO_PinGPIO_Pin_3;Bear_initstruct.GPIO…...

UE4/UE5 Runtime FBX导入:从零到一构建高效动态模型加载方案

1. 为什么需要Runtime FBX导入? 在游戏开发中,动态加载3D模型是个常见需求。想象一下这样的场景:你的游戏允许玩家上传自定义角色模型,或者需要从服务器实时下载建筑模型。如果每次都要重启游戏才能加载新模型,用户体验…...

【智能代码生成×DevOps流水线实战指南】:20年SRE亲授5大高危集成陷阱与零故障落地路径

第一章:智能代码生成与DevOps流水线整合的演进逻辑与价值重定义 2026奇点智能技术大会(https://ml-summit.org) 传统DevOps流水线长期受限于人工编排、模板固化与上下文感知缺失,而大语言模型(LLM)驱动的智能代码生成正从“辅助补…...

可跑在STM32上的EtherCAT主机协议栈

主流分开源轻量栈与商业高性能栈两类一、开源协议栈(免费、商用友好、STM32最常用) 1. SOEM(Simple Open EtherCAT Master) 授权:BSD 2-Clause(商用闭源友好,无衍生开源要求)资源&am…...

从‘新建’到‘流转’:手把手教你用JIRA问题单驱动敏捷开发全流程

从‘新建’到‘流转’:手把手教你用JIRA问题单驱动敏捷开发全流程 在敏捷开发的世界里,工具只是载体,流程才是灵魂。JIRA作为业界领先的项目管理工具,其真正价值往往被低估——大多数团队仅仅用它来记录任务和缺陷,却…...

Seedance2.0API全面开放

目录前言一、Seedance 2.0 是什么1.1 背景1.2 核心能力二、API 接入实战2.1 注册和开通2.2 基础调用示例2.3 多模态混合调用三、实测效果与性能数据3.1 生成质量3.2 性能和定价3.3 与竞品对比四、踩坑记录坑1:异步任务模式坑2:中文镜头指令偶尔抽风坑3&a…...

InceptionTime:时间序列分类的深度学习革命——如何在85个数据集上实现SOTA性能

InceptionTime:时间序列分类的深度学习革命——如何在85个数据集上实现SOTA性能 【免费下载链接】InceptionTime InceptionTime: Finding AlexNet for Time Series Classification 项目地址: https://gitcode.com/gh_mirrors/in/InceptionTime 时间序列分类&…...

中级Python开发-FluentPython-1

一、为什么 Fluent Python 的开篇值得反复看? 很多人学 Python 的路径是: 学语法 背常用库 刷题/写脚本 但中高级 Python 工程师真正的分水岭,不在语法熟练度,而在是否理解 Python 的“协议式设计”: 你写的类是否能 len(obj)? 是否支持索引与切片 obj[i], obj[:3]? 是…...

OpenSTA:开源时序验证工具的完整指南,快速掌握芯片时序分析

OpenSTA:开源时序验证工具的完整指南,快速掌握芯片时序分析 【免费下载链接】OpenSTA OpenSTA engine 项目地址: https://gitcode.com/gh_mirrors/op/OpenSTA OpenSTA是一款强大的开源门级静态时序验证工具,能够帮助芯片设计团队使用V…...

Streams 如何在几秒内生成日志管道

作者:来自 Elastic Luca Wintergerst Streams 只需一次点击就能生成一个完整、经过测试的日志处理 pipeline。其背后的机制分为两个阶段:确定性指纹匹配( deterministic fingerprinting ),以及一个基于真实数据反复迭代…...

ML.NET 实战解析:从数据加载到模型部署的完整流程

1. 为什么选择ML.NET? 如果你是一名.NET开发者,想要在自己的应用中快速集成机器学习能力,ML.NET可能是最顺手的工具。我最早接触ML.NET是在一个电商价格预测项目中,当时团队需要在两周内完成从数据清洗到模型上线的全流程。用Pyth…...

基于图神经网络的智能合约漏洞检测

研一小白,我的课题就是基于图神经网络做合约漏洞检测,有无高手指教一下啊,不知道怎么办,所以来csdn上碰碰运气,看有没有做过类似课题的,关于数据集怎么找、怎么标记以及如何写小论文等...

C语言struct使用避坑指南:从‘declaration does not declare anything‘报错说起

C语言struct使用避坑指南:从declaration does not declare anything报错说起 在C语言开发中,结构体(struct)是最基础也最常用的复合数据类型之一。但正是这种看似简单的语法特性,却隐藏着不少容易踩坑的细节。许多开发者在代码审查或调试过程…...

SMUDebugTool终极指南:4步掌握AMD Ryzen处理器深度调试与优化

SMUDebugTool终极指南:4步掌握AMD Ryzen处理器深度调试与优化 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: htt…...

告别英文恐惧:3分钟打造你的专属中文Android Studio开发环境

告别英文恐惧:3分钟打造你的专属中文Android Studio开发环境 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为An…...

基于MPC-QP分布式驱动车辆轨迹跟踪与稳定性控制、模型预测控制MPC+二次规划QP转矩优化分配联合仿真

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...

Vivado 2017下Zynq-7Z035 PS端UDP通信避坑指南:从lwIP配置到性能调优

Vivado 2017环境下Zynq-7Z035 PS端UDP通信实战:从基础配置到高速传输优化 在工业控制和嵌入式网络通信领域,Zynq系列SoC凭借其独特的ARM处理器与可编程逻辑结合架构,成为许多高性能网络应用的首选平台。本文将深入探讨在Vivado 2017这一经典版…...