Java面向对象的首要特征:封装

JAVA(十七)面向对象的三大特征之一封装 面向对象程序三大特性:封装、继承、多态。而类和对象阶段,主要研究的就是封装。封装简单来说就是套壳屏蔽细节。举个例子,手机中都有主板,而产家不会直接将一个主板直接卖给用户,而会对手机进行外壳的包装,将内部实现细节隐藏起来,仅仅对外提供开关机、按键以及插孔等,让用户和手机屏幕、按键交互,实际上手机真正工作的是CPU、内存等元件。封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。 阅读详情

面向对象的三大特征:

  1. 封装
  2. 继承
  3. 多态
    有了封装,才能继承,有了继承,才能说多态

定义

什么是封装?封装有什么好处?

是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个密不可分的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部细节,只保留一些对外接口使之与外部发生联系,系统的其他对象只能通过包裹在数据外面的已被授权的操作来与这个封装的对象进行交流和交互。

封装的作用有两个:

第一个作用:保证内部结构的安全
第二个作用:屏蔽复杂,暴露简单

怎么封装,代码怎么写?

  1. 属性私有化
  2. 1个属性对外提供两个set和get方法。对外程序只要通过set方法修改,只能通过get方法读取。可以通过在set方法中设立关卡来保证数据的安全性,
    在强调一下:
    set和get 方法都是实例方法,不能带static。
    不带static的方法被称为实例方法,实例方法的调用必须先new对象。
    set和get方法写的时候有严格的规范要求:(要按照规矩来)
    set方法格式:
    public void set+属性名首字母大写(1个参数){
         xxx = 1个参数;
    }

get方法格式:

    public void get+属性名首字母大写(无参数){
         return xxx;
    }  

尽量按照java规范中要求的格式提供set和get方法。
如果不按照这个规范格式来,那么你的程序将不是一个通用的程序。

代码

Person 表示人类:

  • 每一个人都有年龄这样的属性。
  • 年龄age,int 类型

不使用封装

我这里先不使用封装机制,分析程序存在什么缺点?
person 类的age属性对外暴露,可以在外部程序中随意访问,导致不安全。

//这个个没有封装的Person
public class Person{
 int age;//age 属性是暴露的,在外部程序中可以随意的访问,导致了不安全。
}

尝试封装

不再对外暴露复杂的数据,封装起来
对外只提供简单的操作入口
优点:第一数据安全了。第二调用者方便了。

public class Person {
    //private 表示私有的,被这个关键字修饰后,该数据只能在本类中访问。
    //出了这个类,age属性就无法访问了,私有的。
    private int age;//每个人的年龄值不同,对象级别的属性


    //写一个方法专门用来完成读(get)
    //写一个方法专门用来完成写(set)
    //get方法和set方法应该被定义为实例方法
    //get读年龄,set改年龄,这个读和改都是操作一个对象的年龄。(没有对象哪有年龄?)
    //封装的第二步:对外提供公开的set方法和get方法作为操作的入口。并且不带static
    // 【修饰符列表】 返回值类型 类名 方法名(形参){
    //}
    //get方法 是读的,需要返回值,不需要传参数;所以要有返回值的类型int ,形参为空
    public int getAge(){
        return age;
    }
    //set方法 是写入, 不需要返回值,但是要传入参数;所以 返回值类型为void,形参为int
    public void setAge(int nianling){
        // 能不能在这个位置设置关卡!!!
        if(nianling<0 || nianling>120){
            System.out.println("输出的年龄不合法,请重新赋值");
            return; //直接终止程序的运行
        }
        //程序运行到这一步,年龄是合法的
        age = nianling;
    }

}

main程序

public class PersonTest{
    public static void main(String[] args) {
        //创建一个对象
        Person p1 = new Person();
        //读取年龄
        System.out.println(p1.getAge());//0
        //传入年龄
        p1.setAge(23);
        System.out.println(p1.getAge());//23
//
//        //传入年龄 (非法)
        p1.setAge(-100);
        System.out.println(p1.getAge());//23
    }
}
【小白级理解】面向对象三大特征:封装、继承、多态 文章目录前言一、面向对象的基本概念1、对象2、类二、面向对象的三大特征1、封装(1)概述(2)原则(3)总结2、继承(1)概述(2)继承的好处和弊端3、多态总结 前言 面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA)、 面向对象设计(OOD)、面向对象程序设计(OOP)等新的系统开发方式模型的研究。   对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计 阅读详情

相关推荐

Java春招面试题:Java面向对象的特征有哪些?

面向对象程序设计(Object-Oriented Programming,以下简称OOP)起源于20 世纪60年代的Simula语言,是一种发展已经将近30年的程序设计思想。其自身理论已经十分完善,并被多种面向对象程序设计语言(Object-Oriented Programming Language,以下简称OOPL)实现。如果把UNIX系统看成是国外在系统软件方面的文化根基,那么Smalltal...

E_book 1830

Java面向对象编程三大特征 - 封装

本文关键字:Java、面向对象、三大特征、封装。封装是面向对象编程中的三大特征之一,在对封装性进行解释时我们有必要先了解一些面向对象的思想,以及相关的概念。

微光点亮星辰 1万+

stm32教程之三重ADC交错采样

ps:本文基于stm32F407ZGT6单片机 stm32F4单片机单通道采集的最大采样率为2.4M,所以有时会难以满足较高频率的采样,于是查阅芯片手册,发现stm32F4支持多重ADC采集,利用每个通道的转换时间,错位采样,从而提高采样率,最大把采样率开到2.4*3=7.2M. (去年初学ADC时研究的,基于cube和HAL库的三重ADC交错采样参考资料不多,我也是研究了一段时间,写下这篇博客希望可以帮助到更多人。) 示意图如下: 以下是官方例子的说明, In this ex...

weixin_52178036的博客 8877

面向对象的三大特征(封装、继承、多态)

封装继承和多态

yu的博客 3万+

基于深度学习的UWB门禁检测

针对基于UWB技术智能门禁管理系统,由于测距误差或非视距原因导致门禁产生不合理动作的现象。分析如何采用基于深度学习的方法,通过对TWR测距数据、TWR监听数据、到达角度差(PDOA)、信道脉冲响应(CIR)等数据维度进行深度学习,利用 TensorFlow建立相应的推导模型,对卡片姿态进行更加精准可靠的检测,从而更好完成闸机开合控制。

tenth_quadrant的博客 2027

IBM x3650M4服务器更换主板后,导入原有硬盘阵列信息

x3650m4服务器主板坏了,更换好的主板,需要导入原来硬盘的里面的阵列信息 1、开机有提示信息,按C导入配置 2、按Y继续 3、点击start进入阵列卡配置 4、选择configurations 1,点击preview 5、预览硬盘的阵列信息,点击import导入 6、导入成功,可以查看到阵列信息 7、重启服务器,进入操作系统 如果重启找不到操作系统,重启按f12,手动选择从onboard sas controller启动,进入系统一次后面重启就会自动找到并引导系统了。 8、有时候导入阵列

zds00virtue的博客 2万+

初识JAVA-面向对象的三大特征之封装

面向对象是一种解决问题的思想,它把计算机程序看作是各种对象组合起来的。每个对象都有自己的数据(属性)和行为(方法),主要依靠对象之间的交互来解决和实现问题。Java是一门纯面向对象的语言(Object Oriented Program,简称OOP)。封装是将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现的细节,仅对外公开接口来和对象进行交互,从而实现功能。为了更好的管理类,把多个类收集在一起成为一组,称为软件包。在Java中包是对类,接口等的封装机制的体现,是一种对类和接口等的很好的组织方法。

2301_76928097的博客 8097

SuperPoint与SuperGlue的C++ TensorRT工程化实战:从理论到部署的完整指南

本文详细介绍了如何将SuperPoint和SuperGlue算法通过C++和TensorRT进行工程化部署,从模型准备、格式转换到TensorRT引擎构建和C++推理实现。通过性能优化技巧和实际应用案例,展示了在边缘设备上实现实时特征匹配的完整流程,显著提升处理速度与效率。

weixin_42537831的博客 161

Java面向对象三大特征(封装,继承,多态)

什么是多态?多态是在继承、实现情况下的一种现象,表现为:对象多态、行为多态。多态体现为父类引用变量可以指向子类对象。比如:Teacher和Student都是People的子类,代码可以写成下面的样子。

szm0225的博客 1903

GEE开发之ERA5(气温、降水、压力、风速等)数据获取和分析

前言:ERA5主要提供DAILY和MONTHLY两大类别数据,其中主要包括气温、降水、压力、风速等。

等待着冬天的风的博客 3万+

Autosar模式管理入门系列02-EcuM

对EcuM状态机切换过程及模块中重要API进行介绍。

initiallizer的博客 7093

java中面向对象三大特征:封装、继承、多态

java中面向对象三大特征:封装、继承、多态一、面向对象特征之一:封装和隐藏二、面向对象特征之二:继承性三、方法的重写四、面向对象特征之三:多态性 一、面向对象特征之一:封装和隐藏 1、使用者对类内部定义的属性(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。 2、信息的封装和隐藏 Java中通过将数据声明为私有的(private),再提供公共的(public)方法:getXxx(...

仰望与追逐的博客 1004

使用STM32H7点亮RGB屏幕

希望本文能对你有所帮助!RGB屏幕是一种具有红、绿、蓝三种颜色通道的显示设备,通过控制每个通道的亮度,可以显示出丰富多彩的图像和动画。要使用STM32H7控制RGB屏幕,我们需要连接适当的引脚,并编写适当的代码来控制每个颜色通道的亮度。在主循环中,我们先点亮红色通道,然后延迟一段时间,接着点亮绿色通道,再延迟一段时间,最后点亮蓝色通道,并再次延迟。需要注意的是,示例代码中的延迟循环使用了一个简单的计数器实现,但实际应用中可能需要更精确的延迟方式,例如使用定时器中断或操作系统提供的延迟函数。

QoyOle的博客 924

java 面向对象的特征(详解):

首先阐述面向对象思想概述 概述 Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下, 使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过程思想,强调的...

huzecom的博客 8863

Alist/Openlist 的 WebDAV 老是连不上?别再乱试了,这才是标准答案!(1Panel如何使用Alist/Openlist作为备份账号)

😫服务器硬盘告急,想用 Alist/Openlist 的 WebDAV 备份却屡屡失败?别慌!本文带你揭秘正确的连接地址和权限配置,手把手教你搞定 1Panel 备份设置,让你的网盘秒变备份仓库!

XiaoqiangClub的博客 5590

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java中面向对象三大特征总结

JAVA中面向对象的三大特征:         面向对象具有继承性(Inheritance)         面向对象具有多态性(Polymorphism)         面向对象具有封装性(Encapsulation) 一、继承          多个类具有共同的属性(成员变量)与行为(成员方法)的时候,将这些共同的部分抽取出来定义到一个公共的类中,其他及各类可以与这个公共的类形成继

Wei_HHH的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

JAVA面向对象的三大特征--封装、继承、多态

面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。举例来说(办证)需要几步?按照面向过程思想:第一步:找到办事的人第二步:给办事的准备资料第三步 :办完证,证件反馈给我这里我们就看出来,面向过程就是把一件事按步骤一步一步来实现代码表示依次调用这些方法就行对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。

weixin_67224308的博客 3515

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

深度学习工具包 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")

Java面向对象的三大特征:封装、继承、多态详解

作为面向对象的最重要的概念,封装、继承和多态一直是面试Java时的热门话题,准确理解三大特征是非常重要的,这篇文章对该三大特性有较为详细的介绍。

YonminMa的博客 1972

JAVA面向对象的三个基本特征是:封装、继承、多态。

面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 java中普通类只能单继承 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并...

東川 1353

面向对象的特征:继承封装和多态

面向对象的特征:继承、封装和多态 封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。在java中能使用private、protected、public三种修饰符或不用(即默认defalut)对外部对象访问该对象的属性和行为进行限制。 继承是子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了...

随我的博客 2428

面向对象的三大特征——封装、继承、多态

Java面向对象学习笔记(第七篇) 包: 概念:物理上是文件夹,管理类 作用:1.避免类重名 2. 按照不同的功能管理类 3. 控制访问权限 命名规范:在包名中,可以使用.号来区分包的级别;包名一般情况下是小写 第一级 指该项目的类型,如com,org,gov等, 第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei等 第三级 指项目的名称,如:bcms,oa,erp,cms等 第四级 指项目模块的名称,如:bean,action,exception等 (包可以更好的管理逻辑相

qq_45039852的博客 1万+

Java 面向对象的三大特征之封装

1、static 修饰的统一都是静态的,都是类相关的,不需要 new 对象。另外封装了之后,对于我们使用者来说,我们是看不见内部的复杂结构的,我们也不需要关心内部有多么复杂,一个类体当中的数据,假设封装之后,对于代码的调用人员来说,不需要关心代码的复杂实现,注意:只要是方法,不管是静态方法、实例方法、构造方法,它们在运行的时候都是需要压栈。如果这个类型的所有对象的某个属性值都是一样的,不建议定义为实例变量,浪费内存空间。2、当一个属性是类级别的属性,所有对象的这个属性的值是一样的,建议定义为静态变量。

friend18750230725的博客 1125

Java面向对象三大特征的理解

面向对象三大特征的理解初始理解封装继承多态 初始理解 其实这些知识很早就有接触,而且一些概念也牢记于心了。自己叙述面向对象的特征会是这样的: 面向对象的三大特征是封装、继承和多态。封装是对代码的封装以实现迪内聚高耦合的设计,使代码更安全且具有良好的扩展性。继承是父类产生子类的过程,子类可以使用父类的非私有的属性和方法。多态是一个对象在不同时刻可以表现出不同状态的现象。外加Animal和Cat的例子。 这一段时间敲了不少的Java代码,在敲代码的过程中想了无数次的面向对象这几个概念,对他们有了更深的了解,在这

FYSGXFZ的博客 1886

Java面向对象思想以及三大特征之封装

本文主要介绍Java面向对象思想以及三大特征之一的封装,本文将从基本概念、特点、代码实例等多方面尽可能完整清楚地介绍面向对象思想及其三大特征之一的封装。

weixin_45676761的博客 494

java 面向对象 四大特征_Java面向对象的四大特征

前言Java做为一门“全面”面向对象的编程语言,提供了面向对象的四种基本性质:抽象性、封装性、继承性和多态性。面向对象主要有四大特性:封装、抽象、继承和多态。一、抽象抽象就是将一类实体的共同特性抽象出来,封装在一个新的概念(类) 中,所以抽象是面向对象语言的基础。比如鸟就是一个对象,但是我们在研究这个对象的时候把它的一些同类放到一起,一起来考虑,而且抽象的时候,只考虑我们感兴趣的一些数据;假设你自...

weixin_32830601的博客 1314

Java面向对象三大特征---封装

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、概念二、好处三、访问控制符四、使用总结 前言 随着工龄的增长,以往一些基础知识总觉的运用的可能不太熟练,刚开始接触java的时候,复杂的概念,理解度可能都有些误差,如今决定要好好弥补一下java基础。 一、概念 封装是面向对象的三大特征之一,另外两个是继承和多态,封装

weixin_44059750的博客 788
上一篇: Java构造方法
下一篇: mysql索引详解
piepis
博客等级 码龄10年 104粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

piepis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值