Java总结(二)

数组

  1. 定义数组的语法格式
    数组元素类型[] 数组型变量名 或 数组元素类型 数组型变量名[]
  2. 一位数组
    一个数组可以包含多个元素,所含的元素数目被称为数组的长度,数组中也可以没有任何元素,此时称为空数组。因此,在创建数组的时候,需要给出组成数组的元素数目。(Java中的数组只能分配动态存储空间,一旦被创建,无法改变其数组长度。如果要在程序运行的过程中扩展数组的长度,就应该使用数组列表。)
    一位数组创建的语法格式(举个栗子):
    intArray = new int【100】
    或 char[] name = new char[300]
  3. 二维数组
    定义:
    数组元素类型[][] 数组型变量名
    或 数组元素类型 数组型变量名[][]
    或 数组元素类型[] 数组型变量名[]
    创建:
    new 数组元素类型[行数][列数];intArray = new int[10][5];
    或 int[][] intArray = new int[][];

String类

  • String不属于8中基本数据类型
  • 定义String类对象之后,没有引用任何一个字符串,就应该赋予null
  • new String()和new String(“”)都是申明一个新的空字符串,是空串不是null
  • 常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。
例题:
设有以下代码:
String s1 = "123";
String s2 = "123";
String s3 = new String("123");
则表达式s1==s2和s1 == s3 的值分别是(**true**)(**false**)
解释:s1和s2中的”123”都是字符串常量,它们在编译期就被确定了,是常量池中“123”的一个引用
用new String() 创建的字符串不是常量,不能在编译期就确定,所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间。

类与对象

  • 类与对象的区别
    对象是客观世界存在的具体实体,具有明确定义的状态和行为。
    类是一组具有共同特性的所有对象成员的集合,它是一个抽象的概念
  • 类的声明
    1.[修饰符]class 类名
    2.访问控制符,抽象类控制符,最终类说明符
  public:后续定义的任何类均可访问
  private:仅能被类自身的内部函数成员函数访问,其它任何类都不能直接访问
  protected:同private,但能被继承类受保护的成员访问,不能被私有成员访问。
  abstract不仅用于类的声明,也适用于对象。当用于类的声明时,该类不能创建对象。
  final 适用于类的声明,变量或者方法。当用于类的声明时,该类不能有子类。
  • 类中的成员方法
    类中的成员方法主要承担对象的外部接口任务。
    成员方法的重载,是指在同一个类中,同一个名称的成员方法被多次定义的现象
public void setTime(int h,int m ,int s){
  hour = (h<0)?0 : h % 24;
  minute = (m<0)?0 : m % 60;
  second = (s<0)?0 : s % 60;
 }
public void setTime(String time){
hour = Intrger.praseInt(time.substring(0,1));
hour = (h<0)?0 : h % 24;
minute = Intrger.praseInt(time.substring(3,4));
minute = (m<0)?0 : m % 60;
second = Intrger.praseInt(time.substring(6,7));
}

构造方法:构造类对象的时候使用的成员方法,主要作用是初始化成员变量,因此不需要返回任何值。Java中规定,构造方法不允许返回任何值。构造方法可以重载。构造方法的具体定义格式为: [修饰符] 类名(参数列表)

子类构造方法的定义与执行:
在Java程序中,子类不负责调用父类中带参数的构造方法。在创建子类对象的时候需要在构造方法中利用super()调用弗雷德构造方法,以便能够对从父类继承过来的成员变量初始化。

父类:
public class Shape{
   public Shape (int color,int height){
   this.color = color;
   }
}
子类:
public class Rectangle extends Shape{
   public Rectangle(int color,int height,int width){
   super(color,height);
   this.width = width;
   }
}
  • 类的静态成员
    在类中定义成员变量是,如果在访问特性修饰符之后加上static修饰符就成为静态变量。例如:
    public static int staticMember;
    静态成员变量只在加载类时创建一个副本,无论将来创建同一个类的多少个对象都将共享同一个副本。因此,静态成员变量与类共存亡,而与具体的对象无关(因此,称之为类变量)。

    静态成员方法:在外部调用静态方法是,可使用“类名.方法名”的形式,也可以使用“对象名.方法名的形式。而实例化方法就只有后面这种形式。调用静态方法可以无需创建对象;静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法)不能访问非静态的成员变量。

继承与多态

类成员方法的重载与覆盖
  1. 成员方法的重载:指在子类中定义与父类中同名的成员方法,但参数列表不同,在子类与父类之间重载成员方法,或者在一个类中定义多个同名的成员方法,但他们的参数列表不同,在一个类中重载成员方法。

  2. 成员方法的覆盖
    子类通过方法的覆盖可以隐藏继承的方法,方法覆盖是指子类中定义一个方法,并且这个方法的名字,返回类型,参数列表与从父类继承的方法完全相同。
    注意:
    1.子类的方法不能缩小父类方法的访问权限
    2.子类的方法不能抛出比父类更多的异常
    3.父类的静态方法不能被子类覆盖为非静态方法
    4.父类的私有方法不能被子类覆盖

多态性的实现

在Java中,多态性是指不同的类对象调用同一个签名的成员方法是将执行不同代码段的现象。
具体实现方式:首先,在子类中覆盖父类的某个成员方法,然后,定义父类的对象引用,并由他引用创建的子类对象。当在调用成员方法时,根据实际引用的对象类型最终调用哪个方法。
实现动态行需要具备的两个条件:
多态性作用于子类对象,它是依赖于类层次结构中的一项功能。
具有多态性的成员方法必须同时包含在父类与子类中,且对应的成员方法签名完全一致,即子类覆盖父类的成员方法。

抽象类

在Java语言中,用抽象类表示概念性的事物,用类表示可实例化的实体类别。
定义格式: [修饰符] abstract class 抽象类名……{}
抽象类体中的成员方法既可以是抽象方法(不完整的成员方法,只能在不能被实例化的抽象类中出现),也可以是普通的成员方法。
注意
抽象类主要用于派生子类,且在子类中实现抽象类中的所有抽象方法。如果在 子类中没有实现全部的抽象方法,则必须继续将没有被实现的方法声明称抽象方法,此时的子类仍然需要声明为抽象类。
static、private、final修饰符不能用于修饰抽象方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,556评论 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,627评论 0 11
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,586评论 4 12
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,057评论 0 62
  • 来源: 飘逸的python - 增强的格式化字符串format函数版权尽归博主,仅个人记录,不做商用,侵权删 自p...
    大飞哥阅读 316评论 0 1