Java基础——面向对象——封装

Zephyr,设备树概述 Zephyr使用设备树(DTS)描述硬件配置,通过设备树源码和绑定文件生成C头文件供开发使用。设备树采用树状结构,节点对应硬件设备,属性描述硬件特性。示例展示了I2C总线及其外设的节点层级关系,包括单元地址、兼容性标识等关键属性。构建系统将设备树转换为devicetree.h中的宏,使开发者能通过DT_前缀宏访问硬件信息,同时保留Kconfig覆盖默认值的能力。 阅读详情

面向对象的概念

面向对象(Object
Oriented)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。

类的中文意思:

就是一类的东西,如金属类,金,银,铜,铁,锡都是一个类属,都是金属。
(雷Jack搜的)
1.许多相似或相同事物的综合。
2.用于性质或特征相同或相似的事物。
3.类似。
4.姓。

类的定义

类是面向对象语言的程序设计种的概念,是面向对象编程的基础。
类的实质是一种引用数据类型。
类的构成:由属性和方法构成(成员属性和成员方法)

面向对象的三大特征

(封装 继承 多态)

封装

封装是指类的封装,将某一个的方法成员方法和成员属性封装在一个类里面,比如封装一个班的学生:

package com.yedu.cn;

public class Student {
    //Student类的成员属性
    public String name;
    public String gender;
    public int age;
    public String major;

    /**
     * Student类的成员行为方法
     */
    //学习数学
    public void studymath(){
        System.out.println("学生们正在学习!");
    }
    //学习Java
    public void studentJava(){
        System.out.println("学生们正在学习Java!");
    }
    //学习英语
    public void studentEnglis(){
        System.out.println("学生们正在学习英语!");
    }
}

构造器的概念

雷Jack的原话:
构造器的特点:
构造器就是所谓 的构造器方法,该方法与类的其它方法不同的一点就是该方法没有返回值类型,方法名称和类名完全一致,在创建类的时候如果不显示申明构造器,那么类在创建的时候会创建一个无参数的构造方法供创建对象的时候调用!如果开发人员一旦显示申明有参数的构造器之后,那么无参数的构造器将会失效,这时候必须显示申明无参数构造器,否则将无法调用无参数构造器创建对象(编译器会出错)

我的理解,构造器是类里面使用的,在某一个类里面例如学生类,如果想通过外部创建一个学生类,就需要调用一个学生构造器。构造器由无参构造器和有参构造器两种,由无参构造器创建的对象可以去通过 类名.普通实例方法() 获得该类的普通实例方法,而有参构造器就可以初始化对象,使得该对象可以获得属于的自己。
构造器的创建:(在该类里面)
public 该类类名(){};//无参数
public 该类类名(参数列表){this关键字的赋值语句};
调用类的构造器的方法: 通过new关键字调用
类名 新的对象名 = new 类名();
比如:Student stu0 = new Student();
调用类里面的实例方法:
新的对象名.方法名();
例如:stu0.studymath();
调用类里面的静态方法:
类名.静态方法名();

接下来进行测试

    @Test
    public void t1() {
        //创建Student类的对象
        Student student = new Student();
        /**
         *   此时调用的是无参构造,是Student里面默认有的,
         *   通过创建Student类的对象,你就可以通过.普通实例方法
         *   去调用Student类里面的普通方法和访问其成员属性值了;
         */
        System.out.println(student.name);
        System.out.println(student.age);
        System.out.println(student.major);
        System.out.println(student.gender);
        student.studyEnglis();
        student.studymath();
        student.studyJava();
        //调用静态方法
        Student.amuse();
//        student.asume();
// 不能通过创建的对象去调用类里面的静态方法,要通过该类名.静态方法名去调用
    }

在这里插入图片描述

package com.tude.cn;

public class Student {
    //Student类的成员属性
    public String name;
    public String gender;
    public int age;
    public String major;

    public Student(){};//未来防止创建好有参数构造器时造成无参数构造器的失效

    //创建无参构造器
    public Student(String name,String gender,int age,String major){
        //将传过来的值赋值给当前对象的属性
        /**
         * 一般来说,只要创建了某一个类的对象,那么这个对象就会拥有这个类的成员属性了
         */
        this.age = age;//this表示当前类的成员属性
        this.gender = gender;
        this.major = major;
        this.name = name;
    }

    /**
     * Student类的成员行为方法
     */
    //学习数学
    public void studymath(){
        System.out.println("学生们正在学习!");
    }
    //学习Java
    public void studyJava(){
        System.out.println("学生们正在学习Java!");
    }
    //学习英语
    public void studyEnglis(){
        System.out.println("学生们正在学习英语!");
    }
    //创建一个静态方法
    public static void amuse(){
        System.out.println("这是静态方法!!!!!!!!!!!!!");
    }
}
/**
 * 接下俩测试有参构造器
 */
@Test
public void t2(){
    //可以多个创建
    Student student1 = new Student("高读书","女",12,"数学");
    Student student2 = new Student("蓝胖子","女",13,"试吃");
    /**
     * 创建的有参构造器就可以初始化对象的成员属性
     */
    System.out.println(student1.name);
    System.out.println(student1.age);
    System.out.println(student1.major);
    System.out.println(student2.gender);
    student2.studyEnglis();
    student1.studymath();
    student2.studyJava();
    /**
     * 但是无参构造器失效了,就是不能用了,编译会出错,
     * 那么我们应该在该类里面写出无参构造器,这样就不会编译出错了,
     * 注意无参构造器和无参构造器可以同时出现在同一个类里面,
     * 有参构造器和无参构造器之间形成构造器的重载。
     */

    Student student = new Student();

}

运行结果如下:
在这里插入图片描述

this关键字的介绍

雷Jack的原话:
作用

  1. 使用在实例方法中(对象方法种,非static修饰的方法) 如果this关键字出现在实例方法种,表示调用该方法的当前对象,也就是说哪一个 对象调用该方法,那么方法黎曼出现的this就表示一个哪一个对象。
    以前说过,如何嗲用对象的方法,是通过对象名.方法名()的形式调用的,其中对象名就表示方法里面出现的this,this表示一个对象。
    2.使用在构造器里面
    a、表示调用该构造器的当前对象;昨天的知识点,创建对象是通过new关键字调用的构造器,例如 new Computer()就表示一个对象,那么构造方法里面出现的this就表示new Computer()这个对象
    b、表示当前类的其他构造器,相当于在当前构造器里面调用其它构造器,而且,只能出现在当前构造器里面的第一行;否则编译器将会出错。
    this关键字的补充:
    每一个对象的实例方法里面都会有一个关键字,相当于有一个隐含的this对象,所以在实例方法中,this对象在调用自己的其他方法或者访问自己的其它属性时可以省略。
setter and getter方法

getter 和setter 方法是 针对于类里面成员属性的权限访问修饰符是私有(private)情况时,外部类所创建的对象不能直接访问或创建该类的成员属性变量(只能在本类中访问),getter 和 setter 两种方法就可以访问或创建成员属性变量的值了。

在这里插入图片描述

测试代码如下

getter与setter方法
     一般在面向对象的编程中,属性一般私有化,方法公开化。也就是属性的访问修饰符一般使用private,方法的访问修饰符一般使用public.  方法使用public修饰以后,外界任何地方都可以调用该方法;思考一下,既然不能直接访问私有属性,那么可以不可以在类里面定义一个方法,直接操作私有呢?答案是可以的。这个方法就是getter和setter方法,getter方法用于访问对象的属性,setter方法用于修改对象的属性值。
     getter与setter的命名规则:
     get+属性名(前提是属性名的首字母大写)   set+属性名称(前提是属性名的首字母大写
@Test
public void t2(){
    Student student1 = new Student("高读书","女",12,"数学");
    System.out.println("新创建的的、年龄为:"+student1.getAge());
    System.out.println(student1.getMajor());
    System.out.println(student1.getName());
    student1.setAge(222);//改变年龄的值
    System.out.println("改变后的年龄为:"+student1.getAge());
}

运行的结果为:

在这里插入图片描述

toString方法

toString方法是创建对象将类所有的成员属性放在一个字符串中的一种普通方法,这样就避免了想得到某一个类的所有属性时,需要一个一个的用创建的对象访问,toString方法Java虚拟机里面也有现成的方法,可自己写,其格式为(如一个学生类):
public void toString(){ System.out.println("{"+属性1+","+……+“,”+属性n+"}") }

代码如下(将代码放入对象类里任何一个位置)
@Override
public String toString() {
    return "Student{" +
            "name='" + name + '\'' +
            ", gender='" + gender + '\'' +
            ", age=" + age +
            ", major='" + major + '\'' +
            '}';
}
快捷键

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

霜冰优化算法(RIME)详解:从自然现象到智能优化 霜冰优化算法(RIME)是一种新型元启发式优化算法,灵感源于自然界中霜冰的形成过程。该算法通过模拟软霜和硬霜的不同生长特性,实现了高效的全局探索和局部开发平衡。RIME算法包含三个核心机制:软霜搜索策略模拟随机覆盖特性实现全局探索;硬霜穿刺机制模拟定向生长特性进行局部开发;正向贪婪选择机制确保解的持续优化。与遗传算法、粒子群算法相比,RIME具有参数少、收敛快、自适应平衡等优势,特别适合处理高维复杂优化问题。算法已在工程优化、机器学习等领域获得广泛应用,发表一年内即成为高被引论文。 阅读详情

相关推荐

飞塔防火墙认证绕过漏洞(CVE-2022-40684)深度剖析与实战复现

本文深度剖析了Fortinet飞塔防火墙高危认证绕过漏洞CVE-2022-40684的原理与影响。该漏洞允许攻击者通过构造包含特定Forwarded头和User-Agent的HTTP请求,无需凭证即可绕过认证,以管理员身份访问设备。文章详细演示了从环境搭建到实战复现,最终植入SSH密钥获取控制权的完整过程,并提供了漏洞挖掘技巧与关键防御建议。

d6e7f8g9h的博客 708

java中能对属性封装吗_JAVA中的封装

JAVA中的封装性就是指对外部不可见。封装之后的属性和方法对象是不能直接访问的。类中的全部属性都必须封装,封装之后的属性必须通过setter和getter方法设置和取得。package package2;//为属性封装:private 属性类型 属性名称//为方法封装:private 方法返回值方法名称(参数列表){}//必须通过setter和getter方法设置和取得public class P...

weixin_34186408的博客 1269

AI Agent Harness Engineering 监控与日志系统搭建

在生成式AI(Generative AI)与大语言模型(LLM)普及的今天,AI Agent(自主智能代理)已经成为了继「LLM API调用」「单轮/多轮对话」之后的第三代AI应用范式——Agent能够自主感知环境、制定多步决策、调用外部工具(Web搜索、数据库、RAG检索、企业系统API等)、执行复杂任务并优化自身策略。然而,随着Agent应用从Demo原型快速落地到企业生产环境,一系列与工程化落地强绑定的可观测性(Observability)问题正在成为Agent项目成功上线、稳定运行的最大瓶颈。

AI开发架构师 184

Java基础07 面向对象01 OOP 类 对象 封装

每个对象具有三个特点:对象的属性,对象的功能和对象的标识。2.3 类与对象的关系1.我们先创建类,在通过类创建对象2.我们可以通过一个类创建出多个对象3.类是抽象的,对象是具体的2.4 类的定义格式。

s3120626891的博客 1100

LSTM模型 轨迹经纬度预测

原始时间序列数据如下所示,我们只取前两列纬度和经度作为输入数据 我们设定用前六个位置信息预测下一个位置,则两个样本的输入输出数据如下所示: 创建LSTM网络训练模型: import numpy as np from keras.layers.core import Dense, Activation, Dropout from keras.layers import LS...

Muzi_Water的博客 2万+

HTPA 32x32d热成像传感器数据读取与校准全流程解析

本文详细解析了HTPA 32x32d热成像传感器的数据读取与校准全流程。从寄存器配置、原始数据采集,到核心的五大校准步骤(包括热量、电子偏移、电压、灵敏度补偿及温度转换),并涵盖像素重组、坏点修复及图像后处理,为开发者替代或升级MLX90640提供了完整、实用的操作指南。

weixin_29190169的博客 611

Java面向对象——基础2 封装、继承、多态

面向对象三大特征:封装、继承、多态知识小结

青春无问西东 岁月自成芳华 1985

新手必看!手把手教你在群晖 NAS 上玩转 Docker 容器(Container Manager)!(群晖 NAS 如何创建 Docker 容器以及 Compose 部署项目)

新手必看!手把手教你在群晖 NAS 上玩转 Docker 容器(Container Manager)!(群晖 NAS 如何创建 Docker 容器以及 Compose 部署项目)

XiaoqiangClub的博客 5161

Java面向对象基础(封装)

👨‍💻博客主页:i新木优子👀 🎉欢迎关注🔍点赞👍收藏⭐留言📝 🧚‍♂️寄语:努力是生命中的密码,能译出一部壮丽的史诗👣 🙏作者水平有限,发现错误欢迎留言轰炸,🙇‍ 文章目录面向对象基础1.类和对象2.类的定义3.对象的使用4.对象内存图4.1单个对象4.2多个对象4.3多个对象指向相同5.成员变量和局部变量5.1成员变量和局部变量的区别6.封装6.1 private关键字6.2 private关键字的使用6.3 this关键字6.4 this内存原理6.5封装7.构造方法7.1构造方法的概述7.2构造方.

weixin_56382303的博客 503

AIGC算法工程师 面试八股文

1、简述DDPM的算法原理 2、什么是重参数化技巧?Diffusion Models和VAE中的重参数化技巧是如何使用的? VAE中的重参数化技巧 Diffusion Models中的重参数化技巧 3、什么是马尔可夫过程?DDPM中的马尔可夫链是如何定义的? 马尔可夫过程 DDPM马尔可夫链 4、为什么DDPM前向过程中前期加噪少,后期加噪多? 5、VAE和Diffusion Models中的变分推断是什么? 6、Negative Prompt实现的原理是什么?

沉迷单车的追风少年 1万+

《QGIS快速入门与应用基础》079:KML/KMZ格式:Google Earth兼容

KML/KMZ是专为地理可视化设计的空间数据格式,原生兼容Google Earth,支持点线面要素标注与多媒体集成。KML为XML文本格式,KMZ是其压缩版本。该格式优势在于可视化表现力强、跨平台共享便捷,适合地理标注、路线分享等场景,但存在属性支持弱、大数据量处理效率低等局限。QGIS中可便捷加载和导出KML/KMZ数据,需注意编码设为UTF-8、勾选"导出样式"以保留可视化效果。建议中小规模标注数据使用KMZ格式,确保关联资源完整,提升共享效率。

LuckyHanMo的博客 767

【自学笔记】01Java基础-07面向对象基础-01封装

记录学习Java基础中有关面向对象编程的基础知识,包括面向对象思想,构造方法,封装思想,JavaBean。

weixin_55751186的博客 1104

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java的面向对象基础(1) —— 封装

java的面向对象基础(1) —— 封装

weixin_50546241的博客 1129

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java面向对象基础2——封装

本文主要介绍了Java中有关封装的知识点

Alita233_的博客 341

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java 面向对象基础:封装、继承、多态

Java面向对象基础:封装、继承、多态

bigarerelon的博客 786

java面向对象基础——封装

java面向对象基础——封装 封装的概念: 把对象的属性和功能结合作为一个独立的整体,并尽可能的隐藏对象的内部实现细节,比如在家看电视,电视机制造商把一些复杂的东西全部给封在电视机的后壳里,不让用户去更改,我们只需要按遥控器上的按钮就行了,而不需要管其内部是怎么实现的,有什么样的功能,晶体管是怎么显像的,我们都不需要管,所以简单来说,需要让用户知道的,我们就把他显示出来,不需要让用户知道的,我们就...

oholie的博客 370

Java 面向对象基础(类与对象和封装)—— Java 的灵魂与骨架

本文介绍了Java面向对象编程(OOP)的核心概念与应用。主要内容包括:1)面向对象与面向过程的本质区别,通过网购等实例说明对象协作思想;2)类与对象的关系,详细讲解类的定义、成员变量/方法、封装特性及访问控制修饰符;3)方法重载、构造方法、this关键字等关键技术;4)对象内存模型分析。文章强调封装作为OOP三大特征之一的重要性,通过银行账户案例演示private修饰与get/set方法的使用,并系统梳理了构造方法的重载规则和对象创建流程。全文采用理论讲解配合代码示例的方式,帮助理解Java面向对象的基础

FLLFFL666的博客 1809

Java第三次作业——面向对象基础(封装)

Java第三次作业——面向对象基础(封装) (一)学习总结 1.什么是面向对象的封装性,Java中是如何实现封装性的?试举例说明。 将类的一些信息隐藏在类的类部,不让外界直接访问,但可以间接访问。保证了数据的有效性,也提高代码的安全性。 格式 :private 数据类型 变量名,提供访问成员变量的getter/setter方法。 2.阅读下面程序,分析是否能编译通过?如果不能,说明原因。...

dnyhg80846的专栏 285

Java基础-面向对象(封装、继承、多态)

再次学习J2SE,不得不慨叹自己对这部分基础内容掌握的并不牢靠,因此再在这里进行总结。面向对象的基础思想在这里不再提及,此文只针对java中的面向对象的基础内容进行讲述。   封装         (1)属性         ①变量(静态属性)         成员变量可以是java中的任何一种数据类型,定义时如不初始化java可默认对其初始化,初始化值为:

Flash~ 2212

【Java】面向对象基础——继承 + 封装基础题

本文通过Java代码示例展示了学生类及其派生类的设计实现。首先定义了基类Student,包含姓名和年龄属性及相关方法;然后派生出Undergraduate(本科生)和Graduate(研究生)子类,分别增加专业和研究方向属性。重点解析了面向对象编程的核心概念:封装性(private字段+public方法)、继承机制(extends关键字)、多态性(toString方法重写)、构造器调用顺序(super必须首行)以及setter/getter方法的意义。通过测试类演示了对象创建、属性修改和输出过程,完整呈现了

2401_88601421的博客 1000

Java基础---面向对象和封装

Java基础一、面向对象和封装类与对象、封装、构造方法1.面向对象思想1.1 类和对象1.2 类的定义1.3 对象的使用1.4 成员变量和局部变量区别2.封装2.1 封装的步骤2.2 封装的操作-private关键字2.3 封装优化-this关键字2.4 封装优化-构造方法 一、面向对象和封装 类与对象、封装、构造方法 1.面向对象思想 ​ 面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 面向对象的语言中,包含了三大基本特征,即封装

qq_39287430的博客 169

【Java基础】——面向对象:封装

方法是类或对象行为特征的抽象,用来完成某个功能操作。在某些语言中也称为函数或过程。将功能封装为方法的目的是,可以实现代码重用,简化代码。Java里的方法不能独立存在,所有的方法必须定义在类里。比如:Math类:sqrt()\random() …Scanner类:nextXxx() …Arrays类:sort() \ binarySearch() \ toString() \ equals() \ …

lingxw的博客 1563

Java基础:面向对象和封装

1.面向对象思想 Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的引导下,使用Java语言去设计、开发计算机程序。这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。 面向对象强调对象,面向对象思想是一种更符合我们思考习惯的思想,

weixin_45777469的博客 390

简单介绍 Java 基础、面向对象、封装、继承、多态

java 变量 变量--- 数据类型 变量名=值; 数据类型: 1.基本数据类型 byte[1字节] short[2字节] int[4字节] long[8字节] float[4字节] double[8字节] boolean[1字节] char[2个字节] 引用数据类型. 类 接口 枚举 数组 变量名:----命名规则 字母 ,数字, 下划线_ , $符号 组成 不能以数字开头 不能使用java的关键字。 注意: 见名知意 类名接口名的单词首字母大写。 方法、变量名第一个单词的首字母小写其他单词的首字母

A__Cookie的博客 150

java基础第五篇封装与面向对象

a.方法: public static void main(String[] args) { } 一般定义标准: 形参:一般把 不确定的量或者变化的量定义在形参位置//圆的的半径,长方形的长和宽,传递的数组也是不确定的 返回值类型:将运算后的结果类型作为返回值类型//圆的周长,圆的面积,返回数组某个元素 ...

weixin_30393907的博客 88

【Java基础day08】(自用)面向对象思想+封装(上)

面向对象思想

qq_61971608的博客 483
上一篇: Java基础——Java运算符
下一篇: Java基础——面向对象特征继承
惠溪崽崽
博客等级 码龄7年 4粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值