构造方法

java 起步

╄→尐↘猪︶ㄣ 提交于 2020-01-01 02:05:33
1、 对象的初始化 (1) 非静态对象的初始化 在创建对象时,对象所在类的所有数据成员会首先进行初始化。 基本类型:int型,初始化为0。 如果为对象:这些对象会按顺序初始化。 ※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。 构造方法的作用就是初始化。 (2) 静态对象的初始化 程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时 未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。 2、 继承时,对象的初始化过程 (1) 主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。 (2) 主类静态成员的初始化。 (3) 主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造 方法前,先进行对此超类进行非静态对象的初始化。 (4) 主类非静态成员的初始化。 (5) 调用主类的构造方法。 3、 关于构造方法 (1) 类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。 (2) 在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是 第一条语句。 4、 有关public、private和protected (1)

java 起步

巧了我就是萌 提交于 2020-01-01 02:05:17
1、 对象的初始化 (1) 非静态对象的初始化 在创建对象时,对象所在类的所有数据成员会首先进行初始化。 基本类型:int型,初始化为0。 如果为对象:这些对象会按顺序初始化。 ※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。 构造方法的作用就是初始化。 (2) 静态对象的初始化 程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时 未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。 2、 继承时,对象的初始化过程 (1) 主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。 (2) 主类静态成员的初始化。 (3) 主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造 方法前,先进行对此超类进行非静态对象的初始化。 (4) 主类非静态成员的初始化。 (5) 调用主类的构造方法。 3、 关于构造方法 (1) 类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。 (2) 在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是 第一条语句。 4、 有关public、private和protected (1)

JAVA笔记--基础

心已入冬 提交于 2020-01-01 02:03:42
类结构: package 包名; class 类名 extends 父类 implenments 接口名{ 成员变量; 成员方法; 构造方法; } 类示例: public class Hello{ //一个主函数,相当于是成语的入口 public static void main (String args[]){ //执行语句 System.out.println("hello!"); }} //public:表示这个类是公共的,一个 JAVA 文件中只能有一个公共类 //class:表示这是一个类 //Hello:类名(公共类的类名必须喝文件名一致) //static 静态 //void 无返回 注解 1 、成员变量 一般是基本数据类型 , 也可以是 引用类型(指向别的类) 2 、成员方法(函数) Public 返回类型 方法名 (参数列表) { 语句; // 方法(函数)主体 } 参数列表:表示成员函数输入 返回类型(数据类型) :表示成员函数输出 方法(函数)主体:表示为了实现某一功能代码块 注:返回类型和返回结果的类型要一样 3 、构造方法 作用:完成新对象的初始化 特点: 方法名和类名相同,没有返回值,创建一个类的对象时系统自动调用该类的构造方法完成对新对象的初始化 类和对象的区别和联系 1 、类是抽象的、概念的、代表一类事物 2 、对象是具体的,实际的

Java面向对象 学习笔记【实验楼】

匆匆过客 提交于 2020-01-01 00:57:07
类 对于一个具体的对象而言,比如一部 iphone 6,世上还有许多跟这部手机有着同样属性或行为的对象,我们为了方便将它们归类起来,提取出他们相同的属性和行为,而我们把归类起来的这个抽象的概念,称之为类。 比如每个人就是一个对象,小张是一个对象,小明是一个对象。而每个人虽然不同,但却有许多相同的属性和行为,于是我们可以把他们抽象出来,变成一个类,比如人类。 类是封装对象的属性和行为的载体 ,反过来说具有相同属性和行为的一类实体被称为类。 由此可以总结出类的定义: 类是相同或相似对象的一种抽象,是对象的一个模板,它描述一类对象的行为和状态。 类是具有相同属性和方法(行为)的对象的集合 我们在上面反复强调对象的属性和行为,什么是对象的属性呢?什么又是对象的行为呢? 属性是对象具有的特征 。每个对象的每个属性都拥有特定值。我们上面讲过对象是一个具体并且确定的事物,正是对象属性的值来区分不同的对象,比如我们可以通过一个人的外貌特征区分他。 那什么是对象的行为呢?在计算机中我们通过方法去实现对象的行为,而 对象的方法便是对象所具有的操作 ,比如人会走路、会哭泣、会学习等等都是人的行为,也就是人的方法。 类和对象之间有什么关系吗?在上面的讲解中大家应该有些了解了。 类就是对象的抽象(或者模板),对象就是类的具体(或者实例) 。比如手机是一个抽象的概念,它代表着类。而一部 iphone 6

从1+1=2来理解Java字节码

拜拜、爱过 提交于 2019-12-30 08:11:52
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 背景 前不久《深入理解Java虚拟机》第三版发布了,赶紧买来看了看新版的内容,这本书更新了很多新版本虚拟机的内容,还对以前的部分内容进行了重构,还是值得去看的。本着复习和巩固的态度,我决定来编译一个简单的类文件来分析Java的字节码内容,来帮助理解和巩固Java字节码知识,希望也对阅读本文的你有所帮助。 说明:本次采用的环境是OpenJdk12 编译“1+1”代码 首先我们需要写个简单的小程序,1+1的程序,学习就要从最简单的1+1开始,代码如下: package top.luozhou.test; /** * @description: * @author: luozhou * @create: 2019-12-25 21:28 **/ public class TestJava { public static void main(String[] args) { int a=1+1; System.out.println(a); } } 写好java类文件后,首先执行命令 javac TestJava.java 编译类文件,生成 TestJava.class 。 然后执行反编译命令 javap -verbose TestJava ,字节码结果显示如下: Compiled from "TestJava

单例设计模式和main方法

让人想犯罪 __ 提交于 2019-12-29 23:15:54
设计模式就是在大量的实践中总结和理论之后优选的代码结构、编程风格、以及解决问题的思考方式。 说白了设计模式就是在实际编程中逐渐总结出的解决问题的套路,类似于数学公式。 类的单例设计模式:在开发过程中有且只有一个实例化对象。 怎么做到在整个系统运行过程中,这个类只被实例化一次?不论在哪只调用这一个实例?    什么情况下使用单例设计模式?   实例化对象的创建要消耗大量的时间和资源,例如构造方法中的代码行太多。或者频繁的new的新对象没有必要。    //饿汉式:一开始就new一个对象出来public class Singleton { //私有构造方法,调用这个类的人就不能直接使用new来创建对象 private Singleton(){ } //私有的Singleton类型的类变量 private static Singleton INSTANCE = new Singleton(); //构建返回返回类变量的方法 public static Singleton getInstance(){ return INSTANCE; } }    //懒汉式:最开始,对象是null,直到有第一个人调用才new一个对象,之后所有的调用都用这个对象 public class Singleton { //先私有化构造方法,不能让外边直接new对象 private Singleton() { }

Java 时间类-Calendar、Date、LocalDate/LocalTime

戏子无情 提交于 2019-12-29 20:26:00
1、Date 类    java.util.Date 是一个“万能接口”,它包含日期、时间,还有毫秒数,如果你只想用 java.util.Date 存储日期,或者只存储时间,那么,只有你知道哪些部分的数据是有用的,哪些部分的数据是不能用的。   1.1 Date的构造方法   Date 是我们使用的最多的一个日期类,Date提供的构造方法在官方API中有一下几种:      Date 类提供了多种构造方法,但是目前有很多方法都已经不建议使用 public Date() { this(System.currentTimeMillis()); } public Date(long date) { fastTime = date; } @Deprecated public Date(int year, int month, int date) { this(year, month, date, 0, 0, 0); } @Deprecated public Date(int year, int month, int date, int hrs, int min) { this(year, month, date, hrs, min, 0); } @Deprecated public Date(int year, int month, int date, int hrs, int min,

spring之IOC DI 笔记详解

☆樱花仙子☆ 提交于 2019-12-29 02:12:41
首先,spring是一个开源框架,作用是降低程序的复杂性,可以整合各种流行框架。它主要的技术是IOC和AOP,这次主要记录IOC和DI的原理及使用 过程是先把jar包导入到工程中——编写配置文件——编写测试文件 1.使用FactoryBean来管理bean,采用了经典的工厂模式,通过从XML文件或属性文件中读取Javabean的定义。 2.BeanFactory实现了IOC控制,而ApplicationContext扩展了BeanFactory,在这个容器中提供了对其他框架的集成,任务调用等企业服务。 ——什么是控制反转和依赖控制? IOC(Inversion of Control):就是通过类来创建实例的工作交给了IOC容器,就是对象的创建是通过容器来实现的,开发代码时直接使用类的实例。 spring支持两种依赖注入(不支持接口注入): 1), setter注入,基于Javabean中的setter方法注入属性值。举例如下所示: 导入spring的jar包到Java project工程中,导入路径为: 第一步:点击项目右键——选择build path——Configure build Path——选择Libraries选项卡——点击Add External JARs...——然后把spring的jar包导入就OK了 第二步:写实体类和配置文件 实体类文件如下所示: package

面向对象oop

人盡茶涼 提交于 2019-12-28 12:26:37
1.三大特征 封装性,把类当中的属性和实现细节隐藏,提供程序的安全性和复用性,主要用private来表现封装。 继承性,一个类派生出另一个类,原类为父类,派生类为子类,父类是众多子类提取的共性的结果,子类拥有父类的所有功能,主要用extends关键字来表现 多态,增强软件的灵活性和重用性,具体表现有重载、重写与向上造型; 2.类和对象 类指的是一个事物抽象的样子,也就是他们大概的样子, 可以理解为模板或者设计图纸。也比如人, 类当中包括特征和行为,也就是java当中的属性和方法; 2.对象指的是具体的实例,比如男人, 对象会有类的具体表示,比如人具体的名字、性别、身份证等。 3.构造方法 概念:构造方法用来创建对象,并且将对象初始化 语法:修饰符+类名{}概念 4.this关键字: 概念:this代表本类对象的一个引用对象。 5.代码块: 静态代码块>构造代码块>构造方法>局部代码块 6.super关键字: 1.super代表父类的一个引用对象 2.如果在构造方法中使用,必须是第一条语句。 7.方法重写Override 概念: 子类需要重写父类的方法,在父类方法的基础之上做扩展 注意点: 1.父类中的私有方法不能被重写。 2.父类中的构造方法不能被子类继承。 3.子类重写父类方法时,修饰符要>=父类修饰符。 4.子类不能抛出父类没有的异常 8.static关键字: 1

字符串概述和构造方法使用(String类)

…衆ロ難τιáo~ 提交于 2019-12-28 11:56:05
String类 一、String 类概述 通过JDK提供的API,查看String类的说明 A:"abc"是String类的一个实例,或者成为String类的一个对象 B:字符串字面值"abc"也可以看成是一个字符串对象 C:字符串是常量,一旦被赋值,就不能被改变 D:字符串本质是一个字符数组 String类的构造方法有很多,下面挑选其中几个常见的学习: 二、String 类的构造方法 String(String original):把字符串数据封装成字符串对象 String(char[] value):把字符数组的数据封装成字符串对象 String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象 常用构造方法演示 public class StringDemo { public static void main(String[] args) { //方式一 //String(String original):把字符串数据封装成字符串对象 String s1 = new String("helloworld"); System.out.println("s1:"+s1); //直接输出字符串内容,而不是地址值 System.out.println("--------------------"); //方式二 /