面向对象高级篇
1.面向对象(高级)-抽象类与抽象方法的使用abstract: 抽象的 1.可以用来修饰:类、方法2.具体的:abstract修饰类:抽象类 此类不能实例化 抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程) 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作 抽象的使用前提:继承性 abstract修饰方法:抽象方法 抽象方法只有方法的声明,没方法体 包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法的。 若子类重写了父类中的所的抽象方法后,此子类方可实例化 若子类没重写父类中的所的抽象方法,则此子类也是一个抽象类,需要使用abstract修饰 3.注意点:3.1.abstract不能用来修饰:属性、构造器等结构3.2.abstract不能用来修饰私有方法、静态方法、final的方法、final的类4.abstract的应用举例:举例一: 123456789abstract class GeometricObject{ public abstract double...
面向对象初级-(三)
1 面向对象的特征一:封装性1.为什么要引入封装性?我们程序设计追求“高内聚,低耦合”。高内聚 :类的内部数据操作细节自己完成,不允许外部干涉;低耦合 :仅对外暴露少量的方法用于使用。 隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。 2.问题引入:当我们创建一个类的对象以后,我们可以通过”对象.属性”的方式,对对象的属性进行赋值。这里,赋值操作要受到属性的数据类型和存储范围的制约。除此之外,没其他制约条件。但是,在实际问题中,我们往往需要给属性赋值加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。(比如:setLegs()同时,我们需要避免用户再使用”对象.属性”的方式对属性进行赋值。则需要将属性声明为私有的(private). ...
面向对象初级-(二)
1.this关键字1.可以调用的结构:属性、方法;构造器2.this调用属性、方法:this理解为:当前对象或当前正在创建的对象 2.1 在类的方法中,我们可以使用”this.属性”或”this.方法”的方式,调用当前对象属性或方法。但是,通常情况下,我们都选择省略”this.”。特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用"this.变量"的方式,表明此变量是属性,而非形参。 2.2 在类的构造器中,我们可以使用”this.属性”或”this.方法”的方式,调用当前正在创建的对象属性或方法。但是,通常情况下,我们都选择省略”this.”。特殊情况下,如果构造器的形参和类的属性同名时,我们必须显式的使用"this.变量"的方式,表明此变量是属性,而非形参。 3.this调用构造器:① 我们在类的构造器中,可以显式的使用”this(形参列表)”方式,调用本类中指定的其他构造器② 构造器中不能通过”this(形参列表)”方式调用自己③ 如果一个类中有n个构造器,则最多有 n -...
面向对象初级-(一)
1. 面向对象与面向过程(理解) 面向过程: 强调的是功能行为,以函数为最小单位,考虑怎么做。 面向对象: 强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。举例对比:人把大象装进冰箱。 2. 面向对象中两个重要的概念: **类:**对一类事物的描述,是抽象的、概念上的定义 **对象:**是实际存在的该类事物的每个个体,因而也称为实例(instance) 3. 类和对象的使用–面向对象思想落地实现面向对象程序设计的重点是类的设计设计类,就是设计类的成员。创建类的对象 = 类的实例化 = 实例化类 创建类、设计类的成员 创建类的对象 通过“对象.属性”或“对象.方法”调用对象的结构 几个概念的使用说明属性 = 成员变量 = field = 域、字段方法 = 成员方法 = 函数 =...
数组
数组1. 数组-数组的概述1. 数组的理解: 数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。 2. 相关概念:数组名元素角标、下标、索引数组的长度:元素的个数 3. 数组的特点: 数组是有序排列的 数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型 创建数组对象会在内存中开辟一整块连续的空间 数组的长度一旦确定,就不能修改。 4. 数组的分类① 照维数:一维数组、二维数组……② 照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组 2. 数组一维数组的初始化、遍历与元素默认初始化值1. 一维数组的声明与初始化正确的方式:int num;//声明num = 10;//初始化int id = 1001;//声明 + 初始化 1234567int[] ids;//声明//1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行ids = new...
流程控制语句
流程控制流程控制语句分类: 顺序结构:从上而下顺序执行每一行代码 分支结构:或选择结构,根据条件选择执行不同的代码 循环结构:重复执行某一些代码 1. 顺序结构 任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是程序从上到下逐行地执行,中间没有任何判断和跳转。如果main方法的多行代码之间没有任何流程控制,则程序总是从上向下依次执行,排在前面的代码先执行,排在后面的代码后执行。 2. if 分支结构1. if语句结构一:123if(条件表达式){ 执行表达式} 2. if语句结构二:12345if(条件表达式){ 执行表达式1}else{ 执行表达式2} 3. if语句结构三:1234567891011if(条件表达式){ 执行表达式1}else if(条件表达式){ 执行表达式2}else if(条件表达式){ 执行表达式3}... else{ 执行表达式n ...
数据类型与运算符
数据类型与运算符1. 计算机如何存储整数和小数1.计算机如何存储整数 计算机底层存储的是整数的补码。 要知道补码,必须先知道原码,和反码。 用一个字节举例 原码:最高位是符号位(0表示正数,1表示负数),其他位为数值位。 比如: 10的原码: 00001010 -10的原码: 10001010 反码:正整数的反码与原码一致,负整数的反码是在原码基础上,符号位不变,其他位按位取反 10的反码: 00001010 -10的反码:11110101 补码:正整数的补码与原码一致,负整数的补码是在反码基础上加1 10的补码:00001010 -10的补码:11110110 一个字节Byte可以表示的数值范围: 不考虑负数:0000000011111111 : 0255 考虑负数: 0000 0000 ~ 0111 1111 ==> 0~127 1000 0001 ~ 1111 1111 ==> -127 ~ -1 (补码形式存储) 1000 0000 ==> -128 ...
Java语言概述
Java语言概述1. Java的特点与跨平台原理1.面向对象性:两个要素:类、对象 三个特征:封装、继承、多态 2. 健壮性:① 去除了C语言中的指针 ②自动的垃圾回收机制 –>仍然会出现内存溢出、内存泄漏 3. 跨平台型:write once,run anywhere:一次编译,到处运行 Java的跨平台:指的是一处编写到处运行。 Java如何实现的跨平台,借助JVM实现,不同的平台只要有JVM就可以运行Java程序。 2. JVM-JRE-JDK关系**JVM:**Java Virtual Machine — Java虚拟机**JRE:**Java Runtime Environment — Java运行环境=JVM+核心类库**JDK: ** Java Development Kit— Java开发工具集=JRE+开发小工具 3. JDK的安装与环境变量配置示例中的安装路径:D:\SDE_YPT\Java\jdk1.8.0_201 1. 配置JAVA_HOME 系统变量用来指向一个路径,这里用JAVA_HOME指向jdk的安装路径 变量名:...
服务器防火墙篇
1 概述首先要明白一个概念,服务器的防火墙分为内置防火墙和外置防火墙。 1 外置防火墙有的厂商叫它安全组,有的它叫防火墙。比如在腾讯云的控制台,叫防火墙,在华为云控制台里面就叫安全组。 是在云厂商层面的防火墙,在云厂商的控制台进行配置 2 内置防火墙是在服务器层面的防火墙,在服务器内部配置 2 外置防火墙内置防火墙和外置防火墙默认都是关闭状态的,需要使用的端口,需要自己打开。 1 外置防火墙简介以默认配置为例,这些被允许的端口,才会被放行到服务器,才有机会到达服务器的防火墙。 比如,如果外置防火墙没放行8080端口,即使在服务器内部防火墙中,开启了8080端口的访问,但是云厂商层面——外置防火墙不允许放行,外部就无法通过ip:8080访问到。 2 放行外置防火墙端口依次点击:配置规则——添加规则(入方向)——<填写端口>——确定 即可完成添加 出方向默认全部放行的,不用管 3 内置防火墙配置内置防火墙当然需要先打开防火墙,也可以直接关闭内置防火墙,让所有端口都可通过,不过非常不安全,外置防火墙也可以使用关闭外置防火墙的方法实现放行,同样不推荐! 1...
服务器的SSH连接端口更改
两步改ssh连接端口1 编辑ssh配置文件,自定义连接端口1vim /etc/ssh/sshd_config 找到port那一行,默认是22端口 比如,想改成8081端口,就取消注释,改端口数字 2 重启服务生效1systemctl restart sshd.service 注意防火墙端口自行放行!!! 站内有防火墙配置文章 1234sudo firewall-cmd --zone=public --add-port=更改的端口/tcp --permanent#重启防火墙sudo firewall-cmd --reload





