引用类型数组: 点击查看代码 1)Bomb[] bs = new Bomb[3]; bs[0] = new Bomb(100,200); bs[1] = new Bomb(200,300); bs[2] = new Bomb(300,400); System.out.println(bs[0].width); //输出第1个炸弹的宽 bs[1].x = 250; //修改第2个炸弹的x为250 bs[2].move(); //第3个炸弹移动 for(int i=0;i<bs.length;i++…
赋值兼容规则是指在公有派生情况下,一个派生类的对象可以作为基类的对象来使用的情况. 约定类derived是从类base公有派生而来的,则指如下3种情况: (1)派生的对象可以赋给基类的对象.例如: derived d; base b; b=d; (2)派生类的对象可以初始化基类的引用.例如: derived d; base& br=d; (3)派生类的对象的地址可以赋给指向基类的指针.例如: derived d; base *pb=&d; 把子类的对象交给父类的指针或引用就成了向上造型.…
1.引用类型数组: 1)   Cell[] cells = new Cell[4];   cells[0] = new Cell(2,5); cells[1] = new Cell(2,6); cells[2] = new Cell(2,7); cells[3] = new Cell(3,6); 2)Cell[] cells = new Cell[]{  new Cell(2,5), new Cell(2,6), new Cell(2,7), new Cell(3,6) }; 3)  int[]…
任何类都是object类的子类 用object对象接收数组 object类的向上向下转型…
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Python5.5-面向对象三大基本特征_继承 一.初始继承(单继承) 1.1  继承概念 继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 通过继承创建的新类称为“子类”或“派生类”. 被继承的类称为“基类”.“父类”或“超类”. 继承的过程,就是从一…
笔记: 构造方法:构造函数.构造器.构建器---------复用给成员变量赋初值代码 作用:给成员变量赋初始值 与类同名,没有返回值类型(连void都没有) 在创建(new)对象时被自动调用 若自己不写构造方法,则编译器默认提供一个无参构造方法,若自己写了构造方法,则不再默认提供 构造方法可以重载 this:指代当前对象,哪个对象调用方法它指的就是哪个对象 ​ 只能用在方法中,方法中访问成员变量之前默认有个this. this的用法: this.成员变量名-------------访问成员变量…
今天周六,闲着蛋疼就报名参加了公司的一个java比赛,比赛地点某某大厦11楼会议室,想象中应该是能容纳上百人的超大会议室.没成想,到地方一看,只是一个能容纳六七人的有圆形会议桌的小会议室.不过这仍然不能熄灭BZ因对Java热爱而燃起的满腔激情,于是满怀热情地投入到了比赛答题中. 一般这样的开头都会给人一种欲抑先扬的感觉,BZ这次当然也不例外...刚开始没做几题,就被其中的一个小题目给绊倒了,题目大体是这样的:有两个类,一个叫BaseHole,如下所示:public class BaseHole…
子类的对象可以向上造型为父类的类型.即父类引用子类对象,这种方式被称为向上造型. 在日常生活中,我们都扮演着不一样的角色.我们有可能是老师,有可能是学生,有可能是……, 但是我们都有共同的属性,例如:名字.性别.年龄……,但是在该基础上,不同身份的人也有着属于自己的不同的特点.我们通常描述他人的时候会说,这个人是老师,这个认识学生,这个人是个程序员…….实际上“这个人是……”这种说法就是向上造型. 直接上代码: /** * Person类,父类,用于描述人的共有的属性 * */ class Pe…
package com.study.oop.day01; /**  * 如果某个方法是静态 的,它的行为就不具有多态性  * @author LuHongGang  * @date 2017年6月5日  * @time 下午4:19:21  * @since 1.0  * 构造函数并不具有多态性,它们实际上是static方法,  * 只不过该static声明是隐式的.因此,构造函数不能够被override.  */ public class staticDemo { public static…
一.静态 1.构造函数:       特点:       1. 函数名和类名同样.       2. 不用定义返回值类型(和void不是一回事,而构造函数是根本不用定义返回值类型).       3. 不能够写return语句.       对象一建立就会调用与之相应的构造函数.       构造函数的作用:能够用于给对象进行初始化.(我们现实生活中的事物,仅仅要一出现就具备的特性. 比方:人一出生就会哭,一初始化就会哭,哭就是这个人的行为)       构造函数的小细节:       1.当一…
精华笔记: 数组: 复制: System.arraycopy(a,1,b,0,4); int[ ] b = Arrays.copyOf(a,6); 排序: Arrays.sort(arr); //升序排列(从小到大) 方法:函数.过程 封装一段特定的业务逻辑功能 尽可能的独立,一个方法只干一件事 方法可以被反复多次调用 减少代码重复,有利于代码复用,有利于代码维护 定义方法:五要素 ​ 修饰词 返回值类型 方法名(参数列表) { ​ 方法体--------------具体的业务逻辑功能实现 ​…
面线对象: /* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 D:初始化值不同 成员变量:有默认初始化值 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用.   注意事项: 局部变量名称可以和成员变量名称一样,在方法中使用的时候,…
内存中的三大存储区域:栈.堆.静态存储区域 new 关键字:new帮助我们做了三件事:1)在内存中开辟一块空间(开辟内存空间)2) 在开辟的空间中创建对象3)调用对象的构造函数进行初始化对象所以构造函数的修饰符必须为public 作用:1)创建对象2)隐藏基类那里继承过来的同名成员.隐藏的后果就是派生类调用不到基类的成员. 如要隐藏派生类中与基类相同名(指相同方法签名)的方法:A类继承了B类,A.B类中有相同方法签名的方法C( ),可以在基类中public C( ){} ,在派生类中public…
前言 Js数组去重已经有很多种实现方式:包括逐个检索对比(使用Array.property.indexOf),先排序后对比,使用hash表,利用ES6中的Set()等.这些数组去重办法中速度最快的是hash表,最安全也最慢的是逐个检索对比(先排序后对比是优化成先分组再逐个检索),而ES6的Set对象目前浏览器兼容不全. 有没有结合那些以上方式的优点,像hash表一样快,和Array.property.indexOf一样全,又没有兼容问题的解决方案呢? 有! Js中的基本类型 Undefined,…
1.对象的行为:                   (1)方法调用栈:所有的方法调用都维护在一个称为调用栈的结构中. 第一个被调用的方法就是main(),该方法是Jvm调用的,因此main()方法总是在调用栈的底部. (2)调用方法:一个方法被调用时该方法就放在调用栈的顶部,直到方法执行完成. 三种情况:①方法返回一个值:一个基本数据类型或一个引用数据类型被传回给方法的调用者: ②方法不返回一个值:返回值被声明为void:  ③方法抛出一个异常给方法的调用者. Java中的方法只能出现在类中,…
说到数组,大家应该都很熟悉,在C.Pascal.Java等语言中,都有数组的概念.在C++中也提供了对数组的支持.数组简单来说就是一堆相同 数据类型对象的集合. 这里要把握住两个要点: 相同的数据类型.集合. 一.数组 1.定义 数组是由数组存储的对象的类型名.标识符和数组维数组成一种复合数据类型. 类型名规定了可以存储在数组中的对象的类型, 标识符用来标识 数组,用来在程序中引用数组元素, 维数用来规定数组可以存放多少数组元素. 数组的定义如下所示: 类型名 数组标识符[n]; 下面是一些数组…
# 对象 = 属性 + 方法>>> # Python中的类名约定以大写字母开始>>> # tt = Turtle() 这就是创建类实例的方法,其它语言用new ,它是不需要的>>> >>> # Python中的self就相当于Java中的this >>> # self ,一般都放在方法的第一个参数中这是默认的要求 class Ball: def setName(self,name): self.name=name d…
数组的常用方法 java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的. 具有以下功能: 给数组赋值:通过 fill 方法. 对数组排序:通过 sort 方法,按升序. 比较数组:通过 equals 方法比较数组中元素值是否相等. 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作. 具体说明请查看下表: 序号 方法和说明 1 public static int binarySearch(Object[] a, Object key)…
08.01_面向对象(代码块的概述和分类)(了解)(面试的时候会问,开发不用或者很少用) A:代码块概述 在Java中,使用{}括起来的代码被称为代码块. B:代码块分类 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解). C:常见代码块的应用 a:局部代码块 在方法中出现:限定变量生命周期,及早释放,提高内存利用率 b:构造代码块 (初始化块) 在类中方法外出现:多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行 c:静…
引用类型变量可以使用类.接口或数组来声明. 数组引用变量是存放在栈内存(stack)中,数组元素是存放在堆内存(heap)中,通过栈内存中的指针指向对应元素在堆内存中的位置来实现访问. public class Student { public String name; public int age; public char sex; } public class Array { public static void main(String[] args) { //基本数据类型的值是以数值存在的…
一.遍历 for-each即增强for循环,是JDK1.5新增加的功能,专门用于读取数组或集合中所有的元素,即对数组进行遍历. //数组遍历 for-each public class Test_0312_01 { public static void main(String[] args) { int arr[]=new int [5]; for(int i=0;i<arr.length;i++){ //常规遍历的方法 arr[i]=2*i+1; } for(int i=0;i<arr.le…
冒泡排序: 将一个数组中的元素按照从大到小或从小到大的顺序进行排列. for循环的嵌套---专项课题 int[] nums={9,8,7,6,5,4,3,2,1,0}; 0 1 2 3 4 5 6 7 8 9第一趟比较:8 7 6 5 4 3 2 1 0 9 交换了9次 i=0 j=nums.Length-1-i第二趟比较:7 6 5 4 3 2 1 0 8 9 交换了8次 i=1 j=nums.Length-1-i第三趟比较:6 5 4 3 2 1 0 7 8 9 交换了7次 i=2 j=nu…
练习一: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _数组练习01 { class Program { static void Main(string[] args) { string str = null; string[] names = { "老杨","老李&qu…
继承 在继承的关系中,子类就是一个父类,也就是说,子类可以被当做父类看待,例如:父类是员工,子类是程序员,那么程序员就是一个员工,代码示例: // 员工类 public class Employee{ String name; int age; } // 程序员类(继承员工类) public class Programer extends Employee{ } // 主方法 public class Extends { public static void main(String[] args…
目录 求若干个串的公共子串个数相关变形题 对一个串建后缀自动机,另一个串在上面跑同时计数 广义后缀自动机 后缀数组 其他:POJ 3415 求两个串长度至少为k的公共子串数量 @(牛客多校第四场 I题 string) 求若干个串的公共子串个数相关变形题 牛客这题题意大概是求一个长度为\(2e5\)的字符串有多少个不同子串,若\(s==t\)或\(s==rev(t)\)则认为子串\(s,t\)相同.我们知道回文串肯定和他的反串相同. 链接:传送门. 做法1: \(yx\)大佬秒出思路%%,对\(s…
一. 为什么需要继承: 若多个类中都需要一些属性和方法,那么就可以将属性和方法抽取到一个父类中,需要的子类可以通过extends关键字去继承这个父类后拥有相应的属性和方法. 类.数组.方法----引用数据类型 二. 继承的流程: 1. 编写父类:Animal 2. 编写子类:Dog.Cat.Pig 3. 在子类中通过extends关键字去继承父类: 三. 继承的注意事项: 1. 父类中的属性和方法只有使用protected.public修饰的才能被子类继承. 2. 当编写一个类时,若使用了ext…
1.单例模式: 1)提出原因 是由gof 也就是四人组提出来的.为了保证jvm中某一类型的java对象永远只有一个,同时也是为了节省内存的开销.因为外面程序可以通过new的方法直接调用类里面的构造方法.导致该类的对象不止一个.2)定义 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类.A.构造方法私有化:B.对外提供一个公开的.静态的.获取当前类型对象的方法C.提供一个当前类型的静态变量.3)分类 A.饿汉式单例模式:在类…
继承 1. 继承概述 2. 继承格式 在继承的关系中,"子类就是一个父类".也就是说,子类可以被当做父类看待. 例如父类是员工,子类是讲师,那么"讲师就是一个员工".关系:is-a. 定义父类的格式:(一个普通的类定义) public class 父类名称 { // ... } 定义子类的格式: public class 子类名称 extends 父类名称 { // ... } 3. 继承中成员变量访问特点 在父子类的继承关系当中,如果成员变量重名,则创建子类对象时…
public class Utils { public static <T extends Comparable<T>> void sortList(List<T> list){ //list 集合底层是数组,先将集合转换成数组 Object[] obj=list.toArray(); //运用set方法把排序号的值设置过来 for(int i=0;i<obj.length;++i){ list.set(0,(T) obj[i]); } System.out.pr…
问题 A: [动态规划]采药 时间限制: 1 Sec  内存限制: 64 MB提交: 35  解决: 15[提交][状态][讨论版] 题目描述 山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值,在一段时间内如何让采到的草药价值最大. 输入 第一行有两个用空格隔开的整数T和M(1≤T,M≤100),T代表总共采药时间,M代表草药数目.接下来的M行每行包括两个在1到100之间(包括1和100)的整数,分别表示采摘某种草药的时间和这株草药的价值. 输出 只包含一个整数,表示在规定…