JavaSE基础学习之面向对象-内部类

【JavaSE】之面向对象编程 Java基础面向对象编程相关知识介绍~ 阅读详情

第四章 面向对象-内部类

  • 将一个类定义在另一个类里面,对里面那个类就称为内部类(内置类、嵌套类)。
  • 访问特点:
    内部类可以直接访问外部类中的成员,包括私有成员。
    外部类要访问内部类中的成员必须要建立内部类的对象。
  • 实现:
class Outer{
	//内部类
	class Inner{
		
	}
}

在分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述的事物内容。这时就是还有的事物定义成内部类来描述。

  • 直接访问外部类中的内部类成员:
class Outer{
	//内部类
	class Inner{
		void show(){
			System.out.print("Inner");
		}
	}
}
class InnerDemo{
	public static void main(String[] args){
		//直接访问外部类中的内部类成员
		Outer.Inner i=new Outer().new Inner();
		i.show();
	}
}
  • 静态内部类:
class Outer{
	private static int num=5;
	//内部类
	static class Inner{
		void show(){
			System.out.print("Inner"+num);
		}
		static void function(){
			System.out.print("function run - "+num);
		}
	}
}
class InnerDemo{
	public static void main(String[] args){
		//如果内部类是静态的,相当于一个外部类。
		Outer.Inner i=new Outer.Inner();
		i.show();//Inner5
	
		//如果内部类是静态的,成员也是静态的。
		Outer.Inner.function();
	}
}

注意:静态内部类访问外部类成员时,该成员必须也是静态的,否则编译失败。
如果内部类中成员是静态的,那么该内部类也必须是静态的,因为当成员是静态时就不需要对象了,如果内部类非静态就不能通过类名.成员调用静态成员了。

  • 内部类访问变量:
class Outer{
	int num=5;
	static class Inner{
		int num=4;
		void show(){
			int num=3;
			// 3
			System.out.print("Inner"+num); 
			// 4
			System.out.print("Inner"+this.num);
			// 
			System.out.print("Inner"+Outer.this.num);
		}
	}
	void method(){
		new Inner().show();
	}
}
class InnerDemo{
	public static void main(String[] args){
		new Outer().method();
	}
}
  • 为什么内部类能直接访问外部类成员呢?
    那是因为内部类持有了外部类的引用,外部类名.this
  • 内部类放在局部位置上:
class Outer{
	int num=5;
	static class Inner{
		int num=4;
		void show(){
			int num=3;
			// 3
			System.out.print("Inner"+num); 
			// 4
			System.out.print("Inner"+this.num);
			// 
			System.out.print("Inner"+Outer.this.num);
		}
	}
	void method(){
		final int x=6;
		class Inner{
			void show(){
				System.out.print("Inner show"+x);
			}
		}
		Inner in=new Inner();
		in.show();
	}
}
class InnerDemo{
	public static void main(String[] args){
		new Outer().method();
	}
}

内部类在局部位置上只能访问局部中被final修饰的局部变量。(常量)

  • 匿名内部类
  • 匿名内部类就是内部类的简写形式。,其实就是一个匿名子类对象。
  • 前提:内部类必须继承或实现一个外部类或接口。
  • 格式:new 父类or接口( ){子类内容}
abstract Demo{
	abstract void show();
}
class Outer{
	int num=4;
	public void method(){
		/*class Inner extends Demo{
			void show(){
				System.out.print("show run");
				}
			}*/
		new Demo(){
			void show(){
				System.out.print("show run"+num);
			}
		}.show();
	}
}
  • 应用:
interface Demo{
	void show1();
	void show2();
}
class Outer{
	int num=4;
	public void method(){
		Demo d=new Demo(){
			public void show1(){}
			public void show2(){}
		}
	};
	d.show1();
	d.show2(); 
}
class Fu{
	Fu(){
		System.out.print("Fu run");
		show();
	}
	void show(){
		System.out.print("Fu show run");
	}
}
class Zi extends Fu{
	itn num=5;
	{
		System.out.print("code run");
		num=7;
	}
	Zi(){
		super();
		//显示初始化
		System.out.print("Zi run"+num);
	}
	void show(){
		System.out.print("show run"+num);
	}
}
class Demo{
	public static void main(String[] args){
		new Zi();
	}
}
  • 对象的初始化过程:
    在这里插入图片描述
JavaSE知识点 调用yield方法只是一个建议,采用的技术是:写时复制技术/读写分离,添加元素时,使用Lock锁进行锁定,导致当时只能有一个线程对其进行操作,流程是:现将原有的数组复制一份(副本), 新复制的数组比原有的数组长度大1,将新添加的元素放到新的数组中,添加完毕后,用新的数组替换旧的数组。禁止指令重排序: 在对不改变最终的结果的情况下,jvm会对我们写的代码进行重新排序,达到优化的目的,synchronized修饰的方法或者代码块中的代码禁止指令重新排序的,就按照编写的顺序执行,volatile也是可以实现的. 阅读详情

相关推荐

JavaSE学习总结

前言:在学习Java之前,我认真的学完了C语言。现在花了两个月,学习javaSe,才深刻体会到C语言的重要性,C语言就是各个语言的基础,现在觉得他非常重要,学好C,你去接触一门新语言,你会觉得很轻松。作者为初学者,说的不对的地方,欢迎指正。 学习目录: 目录 1.初识java 2.数据类型与变量 3.运算符 4.程序的逻辑控制 5.方法的使用 6.数组的定义与使用 7.类和对象 8.继承和多态 9.抽象类和接口 10.认识String类 11.认识异常 我从这11个章节吧,差

m0_64130230的博客 2188

【JavaSE学习】03面向对象&Java语法

JavaSE(B站黑马)学习笔记 03面向对象&Java语法 面向:找、拿 对象:东西 面向对象编程:找或拿东西过来编程 更加符号人类的思维来编程,比如我们想要让屋子干净,可以使用扫地机器人 也可以用扫把,扫地机器人和扫把就是两个不同对象,我们通过对象来解决让屋子干净问题。再比如我们想要到达某个目的地,可以坐高铁,也可以坐飞机,同样也可以开车,他们就代表三个对象,我们可以使用任意一个对象解决到达目的地的问题。 记住这个思想,以后我们编程会new许多个对象,而这些对象就是帮我们解决问题的。

weixin_48074431的博客 1929

JavaSE进阶基础这一篇就够了,你值得拥有!

本Java视频教程适合有一定编程语言基础的学员观看,在本Java视频教程中讲解了Java开发环境搭建、Java基础语法、面向对象、异常、数组、常用类、集合、IO流、线程、反射机制。该Java视频教程为讲师上课实录,共60个课时(1小时为1个课时),讲师语言表达流利,思路清晰。如果您是有一门编程语言基础的,或者您现在是一名Java程序员且想巩固一下JavaSE的,请打开Java视频教程观看吧!...

f5465245的博客 9733

JavaSe-学习知识点汇总

个人认为比较重要的JvaSe知识点汇总

a931394057的博客 2318

《JavaSE系列教程》

本专栏内容是为零基础正在学习Java的学习者量身定制的学习路线及方案,本教程字数超20w+,插图超过400+,知识体系极其全面,案例极其丰富。本配备有专门的学习群及学习视频,读者可加学习群与正在学习该阶段的人一同学习,有任何不懂的也可以观看于此教程配套的学习视频。

緑水長流*z 11万+

基于Simulink的IEEE33节点配电网仿真实战:从建模到分布式能源集成

本文详细介绍了基于Simulink的IEEE33节点配电网仿真实战,从基础建模到分布式能源集成。通过MATLAB脚本管理参数、搭建Simulink模块,并集成风机和光伏系统,实现高效配电网仿真。文章还涵盖潮流计算、故障分析及性能优化技巧,为电力系统仿真提供实用指导。

git9versioner的博客 991

JAVASE学习笔记

javaSE

qq_46628467的博客 615

银河麒麟v10-arm SEALOS离线部署k8s集群(v1.22.8)

示例 如果你想保存一个名为 "my_snapshot" 的 etcd 快照到指定的对象路径你可以使用以下命令: sealos etcd save --backupPath /root --name my_snapshot 如果文件名带时间戳:my_snapshot$(date +"%Y%m%d_%H%M%S") 会生成一个形如 20230913_143045 的时间戳。--restorePath string:指定快照恢复目录(默认为 "/opt/sealos/etcd-restore")。

xjudt的博客 3288

JavaSE 每天一点思维导图笔记总结(不断更新中…)

JavaSEservelt01 (4.24) servelt01 (4.24)

weixin_43774841的博客 699

FastAPI + LLM 实战:5分钟搞定本地模型API服务部署(含避坑指南)

本文详细介绍了如何使用FastAPI和LLM(大语言模型)快速部署本地API服务,涵盖环境准备、模型集成、性能优化及避坑指南。通过实战示例,帮助开发者在5分钟内完成从零到生产的部署过程,提升AI应用开发效率。

weixin_29062963的博客 103

Mask2former自定义数据集实现滑坡语义分割

先介绍一下这次用的数据集:Bijie Landslide Dataset,是武汉大学在Triplesat卫星上裁剪的数据集,包含770张滑坡(image、mask、dem、边界坐标txt)和2003张非滑坡数据(dem、image)。直接在ade20k修改,按照路径和设置将预处理数据放好,该步骤很快就能结束,打开的图片是全黑的,因为0和1在图片上肉眼较难区分。bijie的数据集可以直接使用,接下去的步骤是1、预处理数据。配置文件修改训练类别和训练类型,由于我们分割的是滑坡,所以进行语义分割。

weixin_57812838的博客 2216

JavaSE笔记总结(有C语言基础的)

一、Java基础知识* Java程序设计概述 Java语言基础 数组 二、面向对象编程 封装与类 类的继承 多态性 三、Java常用类 常用工具类 集合 异常处理 四、Java高级编程 图形用户界面与事件处理 多线程 输入/输出流 数据库访问技术 ...

munaiyi13的博客 336

MPU6050 加速度计和陀螺仪传感器与 Arduino 的接口

虽然该模型并不能准确代表现实世界中加速度计传感器的构建方式,但它通常有助于理解为什么加速度计的输出信号通常以 ±g 为单位指定,或者为什么加速度计在静止时在 z 轴上的读数为 1g,或者在不同方向上您可以期望得到什么样的加速度计读数。该模块的核心是低功耗、低成本的 6 轴运动跟踪芯片 MPU6050,它将 3 轴陀螺仪、3 轴加速度计和数字运动处理器 (DMP) 集成到一个 4mm x 4mm 的微型芯片中。小时候,科学博览会上的陀螺仪总是让我们感到惊讶,因为它们以奇怪的方式移动,甚至似乎违背了重力。

sxstj的博客 9933

JavaSE『学习笔记』

本教程以 JDK8 为主,新版本与新特性以介绍与使用为辅。

小哞^同^学的技术博客 1237

ESP32C6+ESP-IDF5.2实战:基于RS485的ModbusRTU从站开发与调试

本文详细介绍了基于ESP32C6和ESP-IDF5.2开发ModbusRTU从站的实战指南。涵盖硬件连接、协议实现、ESP-Modbus库移植、寄存器映射及调试技巧,帮助开发者快速构建稳定可靠的工业级RS485通信节点,并解决常见通信故障。

play7的博客 1188

全网最全-DA14531-全球最小-BLE从入门到精通开发教程

本教程主要适用于低功耗产品,DA14531它体积小,非常适用于对体积敏感的设备,如无线可穿戴、传感器、助听器等设备。本文经过作者发大量时间来记录开发项目的调试方法,里面有许多笔者开发心得体会,旨在让读者工程师快速上手,减少摸索时间,提高软件质量。读者对象本文档主要适用以下工程师:嵌入式系统工程师单片机软件工程师IOT固件工程师BLE固件工程师。

hejinwu1314的博客 5138

视频教程-内部类和面向对象总结-Java

内部类和面向对象总结 工科硕士,持有高校计算机教师资格证书,从事计算机科学少...

weixin_33575361的博客 1万+

YOLOv8改进 | Conv篇 | DWRSeg扩张式残差助力小目标检测 (附修改后的C2f+Bottleneck)

本文内容给大家带来的DWRSeg中的DWR模块来改进YOLOv8中的C2f和Bottleneck模块,主要针对的是小目标检测,主要创新点可以总结如下:多尺度特征提取机制的深入研究和创新的DWR模块和SIR模块的提出这种方法使得网络能够更灵活地适应不同尺度的特征,从而更准确地识别和分割图像中的物体。通过本文你能够了解到DWRSeg的基本原理和框架,并且能够在你自己的网络结构中进行添加(DWRSeg需要增加一定的计算量一个DWR模块大概增加0.4GFLOPs)。

Snu77的博客 9571

【JavaSE复习】基础、面向对象

两种格式1.格式1:数据类型[ ] 变量名,例如:int [ ] arr。定义了一个int类型的数组,数组名是arr。2.格式2:数据类型 变量名[ ], 例如:int arr[ ]。定义了一个int类型的变量,变量名是arr数组。无参数格式public stastic void 方法名(){…}有参数格式public static void 方法名(参数){… …}public static void 方法名(参数1,参数2,…){… …}带返回值格式。

m0_46261292的博客 1013

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【JavaSE】内部类

关于JavaSE中内部类的学习~

qq_56251766的博客 1115

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

JavaSE之面向对象知识点总结

JavaSE之面向对象知识点总结

weixin_44528963的博客 1611

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【JavaSe】面向对象篇(十一) 内部类

JavaSe·面向对象篇(十一) 内部类 1. 内部类 1.1 什么是内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。 1.2 成员内部类 成员内部类 :定义在类中方法外的类。 class 外部类 { class 内部类{ } } 在描述事物时,若一个事物内部还包含其他事物,就可以使用内部类这种结构。比如,汽车类 Car 中包含发动机类 Engin...

不想当架构师的程序员不是好程序员 1054

JavaSE面向对象之内部类12

JavaSE面向对象之内部类12 第三章 内部类 1.1 概述 什么是内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。 成员内部类 成员内部类 :定义在类中方法外的类。 定义格式: class 外部类 { class 内部类{ } } 在描述事物时,若一个事物内部还包含其他事物,就可以使用内部类这种结构。比如,汽车类 Car 中包含发动机 类 Engine ,这时, Engine 就可以使用内部类来描述,定义在成员位..

helloworld工程师的博客 235

JavaSE 面向对象基础

JavaSE类和对象对象内存图成员变量和局部变量封装构造方法 类和对象 对象内存图 成员变量和局部变量 封装 构造方法

苦瓜的博客 3097

JavaSE学习经验整理

JavaSE学习经验整理JavaSE学习经验整理首先为了新手小白准备了些常用的快捷键知识点Java语言概述入门程序:HelloWorld案例书写规范(公司很在意书写规范,没有规则不成方圆)Java基础面向对象面向对象的思想特点类与对象Java程序的开发,设计和特征匿名对象封装privatethis关键字构造方法static关键字继承final关键字多态抽象类接口包导包权限修饰符常见的修饰符内部类具...

weixin_43949154的博客 2132

JAVASE基础之面向对象

JAVASE基础之面向对象1面向过程2面向对象3面向对象的特征3.1封装3.2继承3.3多态 1面向过程 概念:面对一个问题,考虑从顶向下逐步求精去分析问题和解决问题 特征:自顶向下逐步求精,不去考虑对象的存在 2面向对象 概念:面对一个问题,考虑解决该问题需要多少个对象,每个对象有哪些特征(属性、成员变量)和行为(方法),以及对象之间如何协作,最后调用对象的方法来解决问题 步骤:1 定义类 ​ ...

chenhao0922的博客 318
上一篇: JavaSE基础学习之面向对象-多态
下一篇: JavaSE基础学习之面向对象-异常
JavaStudyha
博客等级 码龄9年 3粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值