java基础(12):构造方法、this、super】的更多相关文章

1. 构造方法 我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的set和get方法.当创建人对象的时候,人对象一创建就要明确其姓名和年龄,那该怎么做呢? 1.1 构造方法介绍 在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名.年龄等属性信息. 那么,创建对象就要明确属性值,那怎么解决呢?也就是在创建对象的时候就要做的事情,当使用new关键字创建…
Java基础--String构造方法 public String(): 创建一个空表字符串对象,不包含任何内容 public String(char[]chs): 根据字符数组的内容,来创建字符串对象,现已不用 public String (byte[]bys): 根据字节数组的内容,来创建字符串对象 String s="abs": 直接赋值的方式创建字符串对象,内容为双引号内的字符串数据推荐使用 //笨方法public class StringDemo01 {   public st…
在java里面,构造方法也就是构造函数 构造函数=构造方法;构造方法是一种特殊的方法,具有以下特点.(1)构造方法的方法名必须与类名相同.(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型.(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域.(4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码.(5)构造方法可以重载,以参数的个数,类型,顺序. java构…
package com.test.innerclass; public class HelloB extends HelloA { public HelloB() { System.out.println("子类无参构造方法 HelloB()"); } public HelloB(String arg) { System.out.println("子类有参构造方法 HelloB(arg)"); } { System.out.println("子类构造块I'…
更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux.网络.多线程,偶尔讲点Docker.ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!(关注公众号后回复"资料"即可领取 3T 免费技术学习资源以及我我原创的程序员校招指南.Java学习指南等资源) 本文对java的Class类和Object类的概念和原理做了详尽的介绍,并且…
面向对象的三大特征: 1.封装   (将一类属性封装起来,并提供set()和get()方法给其他对象设置和获取值.或者是将一个运算方法封装起来,其他对象需要此种做运算时,给此对象调用) 2.继承   (继承关系通过extends关键字体现) 3.多态   (父类的引用指向子类的对象,或者接口的引用类型变量指向接口实现类的对象) 一.继承 1.1.继承的格式 class 类名1 extends 类名2{ } 1.2.继承关系 继承关系通过关键字extends体现的 1.3.继承关系的注意事项 1.…
this 在java中,this是一个引用当前类对象的引用变量,主要有以下几种用法: 引用当前类的实例变量· this关键字可以用来引用当前类的实例变量.如果实例变量和某个方法的参数之间存在歧义(实例变量和参数命名相同),则通过this.变量名 可用于明确地指定实例变量以解决歧义问题. 调用当前类方法 可以使用this关键字调用当前类的方法,格式:this.方法名.如果不使用this关键字,编译器会在调用方法时自动添加此 this 关键字. 调用当前类的构造函数 this()构造函数调用可以用来…
路漫漫其修远兮,吾将上下而求索.——屈原<离骚> 昨天写this用法总结的时候,突然产生了一个问题,请教别人之后,有了自己的一点认识.还是把它写下来,为大家更好的认识提供一点思路. 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建属性的初始化,这样在一个构造函数中调用另外一个构造函数,可以避免重复的代码量,减少工作量: 2)在一个构造函数中调用另外一个构造函数的时候应该用的是同一块内存空间,在默认的构造函数中先初始化变量,调用另一个的时候覆写已经初始化的变量的值:…
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/8483623.html 一.概述 Java中this有两种用途,一种是用于指代当前对象,一种适用于指代构造器,当前类的构造器. super就专用于指代构造器,而且是超类的构造器. this关键字和super关键字关联之处来与二者皆可用于构造器中来调用其他构造器. 二.this作用 2.1 指代当前对象 this指代当前对象时,是属于对象级别的存在,不可用于类级别的内容(静态内容)中. th…
抽象类:abstract 1.应用的场景 我们描述一类事物时,存在着某种行为,但这种行为目前不具体,那么我们就可以抽取这种行为的声明,但是不去实现这种行为,我们就需要使用抽象类. 2.抽象的好处 强制要求非抽象的子类一定实现父类抽象的方法 3.抽象类需要注意的细节 1.如果一个函数没有方法体,那么该函数必须要使用抽象来修饰,把该函数修饰成抽象函数    2.如果一个类中出现抽象函数,那么该类必须使用abstract修饰    3.如果一个非抽象类继承了抽象类,那么必须实现抽象类的所有抽象函数. …
一).构造方法: 在之前我们提到对象的概念以及对象的实例化等,在这里简单回顾下: Man man = new Man(); 语句创建一个对象,new可以理解成创建一个对象的关键字,通过new关键字为对象分配内存,初始化实例变量,并调用构造方法. Man()形式上和调用方法相同,而这个Man()就是一个特殊的方法叫做构造方法: 构造方法在代码中并没有看到这个方法的定义原因是在没有定义构造方法的时候,JAVA会隐式的创建一个无参的默认构造方法 构造方法有以下几个特征:1.具有和类相同的名称:2.不含…
package com.swift; import java.util.Date; public class Getclass_Test extends Date { public static void main(String[] args) { new Getclass_Test().test(); } public void test() { System.out.println(super.getClass().getName()); System.out.println(this.ge…
导读:经过前面的博客总结,可以知道的是,HashMap是有一个一维数组和一个链表组成,从而得知,在解决冲突问题时,hashmap选择的是链地址法.为什么HashMap会用一个数组这链表组成,当时给出的答案是从那几种解决冲突的算法中推论的,这里给出一个正面的理由: 1,为什么用了一维数组:数组存储区间是连续的,占用内存严重,故空间复杂的很大.但数组的二分查找时间复杂度小,为O(1):数组的特点是:寻址容易,插入和删除困难 2,为什么用了链表:链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但…
需求描述 实现上图需求,根据输入的三个人的信息,分别计算出这个三个客户的平均年龄和最大年龄 涉及知识点: ①构造方法 ②字符串切割 ③对象数组 代码实现 代码结构图: package cn.test.logan.day03; public class Person { String custNo; String custName; int age; String addr; // 定义构造方法:用来构造一个对象时执行的初始化逻辑 public Person(String custNo,Strin…
从一个程序开始: class dog { private String name; private String color; private int age; dog(String name) //仅给name赋值 { this.name=name; } dog(String name,String color) //仅给name,color赋值 { this.name=name;//但之前有过类似代码 this.color=color; } dog(String name,String co…
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/01/2992662.html 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们之前使用类创造新的类型(type),并使用继承来便利我们创建类的过程.我将在这一讲中深入类型,并介绍多态(polymorphism)的概念. 类型检查 Java的任意变量和引用经过类型声明(type declaration),才能使用.我们之前见…
在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法.构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的.每当类实例化一个对象时,类都会自动调用构造方法. 构造方法的特点: 构造方法没有返回类型,也不能定义为void 构造方法的名称要与本类的名称相同 构造方法的主要作用是完成对象的初始化工作,它能把定义对象的参数传给对象成员 构造方法的使用方法: package mingri.chapter_6; public class BorrowABook { public Bor…
类型检查 Java的任意变量和引用经过类型声明(type declaration),才能使用.我们之前见过对象数据.类数据.方法参数.方法返回值以及方法内部的自动变量,它们都需要声明其类型.Java是一种强类型(strongly typing)语言,它会对类型进行检查.如果我们错误的使用类型,将造成错误. 比如在下面的Test类中,我们将一个Cup类对象赋予给aPerson类引用: public class Test{    public static void main(String[] ar…
构造方法是一种特殊的方法,它是一个与类同名且无返回值类型(连void也不能有)的方法. 对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化. 当类实例化一个对象时会自动调用构造方法.构造方法和其他方法一样也可以重载. 构造方法分为两种:无参构造方法 有参构造方法 类中必定有构造方法,若不写,系统自动添加无参构造.(接口不能被实例化,所以接口中没有构造方法.) 实例演示:计算坐标点的距离 实体类Point代码: public class Point { // 点的属性 横纵坐标 int…
1.IO流的原理 利用数据通道实现程序和数据源之间数据的的读写操作.  2.IO流分类 输入流.输出流.字节流.字符流.节点流.过滤流  3.InputStream 字节输入流 实现类FileInputStream 使用FileInputStream的步骤: step1:创建一个FileInputStream对象并且指定要操作的数据源 step2:调用read方法读取数据 step3:循环读取 step4:输出内容 step5:关闭IO流对象在finally中 字节的输入输出流适合对二进制文件,…
<一>基本概念理解 1.什么是进程? 进程就是在某种程度上相互隔离,独立运行的程序.一般来说,系统都是支持多进程操作的,这所谓的多进程就是让系统好像同时运行多个程序. 2.什么是线程呢? 一个进程可以包含多个线程,在程序中是独立的,并发执行的流,但是与分隔的线程相比,进程中的线程之间的隔离程度要小.他们共享内存,文件句柄和每个线程应有的状态. 3.进程和线程的区别: (1)一个进程可以包含多个线程,线程比进程具有更高的性能. 这是因为多个线程将共享同一个进程的虚拟空间.线程共享的环境包括:线程…
题目整理 Java基础进阶阶段 基础概念类 1.JDK1.8新特性? 2.面向对象和面向过程的区别? 3.什么是值传递和引用传递? 4.什么是不可变对象? 5.讲讲类的实例化顺序? 6.java 创建对象的几种方式 7.Java访问修饰符的作用域 8.switch中能否使用string作为参数? 9.switch中能否作用在byte,long上? 10.什么是自动拆装箱? 11.如何正确的退出多层嵌套循环? 继承 1.Java支持多继承么? 2.父类的静态方法能否被子类重写? 3.继承的好处和坏…
package com.cn.This; /** * this与super的区别: * 1.this相当于指向本类的对象的指针,调用本类的另一种类型的构造方法 * 2.super调用的是父类中形参相同的构造方法 * 3.两者都需要放在构造方法内的第一行 * 4.两者不能同时出现在一个构造函数中,因为this必然会调用其他的构造函数,进而会产生两个super * 5.两者都指对象,所以不能在含有static的环境中使用 * @author P0111220 * */ class Person{ p…
一.this关键字 1.this概念 (参考:http://www.cnblogs.com/xdp-gacl/p/3636071.html)   this是一个引用,它指向自身的这个对象,它的内存分析如下图.假设我们在堆内存new了一个对象,在这个对象里假设有一个引用this,this指向这个对象自己,所以这就是this,这个new出来的对象名字是什么,我们不知道,不知道也没关系,因为这并不影响这个对象在内存里面的存在,这个对象只要在内存中存在,他就一定有一个引用this. 2.this在方法中…
2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流…
一.抽象类和抽象方法 (B 继承  抽象类A) 抽象类:有抽象方法的一定是抽象类 抽象方法:方法名前有abstract修饰,且方法没有方法体,即{},不需要实现任何功能,只是声明 1.抽象类中的方法有两种: (1)抽象类中的普通方法,可以不必实现 (2)抽象方法,所属的抽象类被继承后,抽象方法必须被重写,除非是被抽象类继承,不必被 抽象类必须被继承,且抽象类不能被实例化,即抽象类A ,不能定义 A a=new A() ; package Interface; /** * Created by w…
构造方法 我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的set和get方法.当创建Person对象的时候,Person对象一创建就要明确其姓名和年龄,那该怎么做呢? 构造方法介绍 在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名.年龄等属性信息.也就是在创建对象的时候就要做的事情,当使用new关键字创建对象时,怎么给对象的属性初始化值呢?这就…
1.以下关于面向对象概念的描述中,不正确的一项是() A.在构造方法中,this()只能出现在构造方法第一行位置 B.在构造方法中,super()只能出现在构造方法第一行位置 C.this()和super()可以同时出现在同一个构造方法中,this()指代调用本类中其他构造方法,super()指代调用父类构造方法 D.this()和super()不能同时出现在同一个构造方法中,否则编译器会报错 答案:C 解析:this()和super()不能同时出现在一个构造函数里面,因为this()和supe…
一.方法的返回值   当我们在程序中调用方法时,虚拟机将会跳转到对应的方法中去执行.当以下几种情况发生时,虚拟机将会回到调用方法的语句并继续向下执行: 执行完方法中所有的语句: 遇到return语句: 方法抛出一个异常(有关异常的内容将会在后面的文章中讨论).   这里我们重点介绍return语句.return语句用来返回一个值,当虚拟机遇到return语句时将会立刻结束当前方法并带着返回值回到调用此方法的地方.在声明方法时,返回值的类型要和return语句里返回的值的类型一致.如果方法没有需要…
面向对象 今日内容介绍 u 构造方法 u this u super 第1章 构造方法 我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的set和get方法.当创建人对象的时候,人对象一创建就要明确其姓名和年龄,那该怎么做呢? 1.1 构造方法介绍 在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名.年龄等属性信息. 那么,创建对象就要明确属性值,那…