构造方法

JAVA知识点总结篇(二)

守給你的承諾、 提交于 2019-11-30 16:56:29
数组 一维数组 声明 数据类型[] 数组名; 数据类型 数组名[]; 分配空间 数组名 = new 数据类型 [数组长度]; 可以在声明的同时分配空间,分配空间之后数组中才能放数据,数组元素都是通过下标来访问,声明数组的同时赋值时不能指定数组长度; foreach: for(元素类型 元素变量:遍历对象){ 执行的代码; }; 二维数组 声明并分配空间: 数据类型[][] 数组名 = new 数据类型 [行的个数][列的个数]; 在定义二维数组时可以只指定行的个数,然后再为每一行分别指定列的个数,若每行列数不同,则创建的是不规则的二维数组; 方法 定义语法: 访问修饰符 返回值类型 方法名(参数列表){ 方法体; }; 分类: 无参无返回值方法; 无参带返回值方法; 带参无返回值方法; 带参带返回值方法; 调用方法: 对象名.方法名() 调用带参方法时,必须保证实参的数量,类型,顺序和形参一一对应; 调用方法时,实参不需要指定数据类型; 方法的参数既可以是基本数据类型,也可以是引用数据类型,当有多个参数时,多个参数间以逗号分割; 重载:在同一个类中,方法名相同,方法参数个数、顺序或类型不同称为方法的重载,与方法的修饰符或返回值无关系; 类与对象 类是模子,确定对象将拥有的特征(属性)和行为(方法),特点:类是对象的类型,具有相同属性和方法的一组对象的集合; 定义类的步骤: 定义类名

构造函数

折月煮酒 提交于 2019-11-30 15:49:47
一,构造函数的定义格式: Java中所有类都有构造方法,用来进行该类对象的初始化,构造方法也有名称,参数和方法体以及访问权限的设定。 1.构造方法的完整定义格式如下 : [public|protected|private]<class_name>([argument_list>]) { [<statements>] } 2.访问限定符(4种) ♦public : 任何类都能够创建这个类的实例对象。 ♦ protected :只有这个类的子类以及与这个类在同一个包中的类可以创建这个类的实例对象。 ♦ private :没有其他类可以实例化该类,只有这个类中具有public权限的方法可以构造该类的对象。 ♦ 没有访问权限设定 :只有与该类在同一个包中的类可以创建该类的实例化对象。 3.构造方法的特点: ♥构造方法的名称必须与类名相同。 ♥构造方法不能有返回值。 ♥用户不能直接调用构造方法,必须通过关键字new 自动调用它。 ( 补充:) 1.用class定义的类型叫做类类型。       2.一个类是用来描述一个实体(属性+行为)的抽象类型。        类(成员变量)=》实体的属性的        类(成员方法)=》实体的行为的       3.类里面的所有成员都可以做访问限定,如:public,private。。。       4.对象的成员变量如果没有初始化,会自动进行初始化的

为什么要使用构造方法进行依赖注入?

回眸只為那壹抹淺笑 提交于 2019-11-30 15:13:55
一、前言 我们在使用Spring框架进行开发时,不可避免的要进行依赖注入(Dependency Injection),也就是把实例从Spring容器中取出来进行使用。Spring的依赖注入方式主要有三种,分别为Constructor、Setter和Field。有了选择的余地,令人纠结的地方就来了,这三种方式哪个更好一些呢? 二、注入方式对比 Constructor注入 private DependencyA dependencyA; @Autowired public DI(DependencyA dependencyA) { this.dependencyA = dependencyA; } Setter注入 private DependencyB dependencyB; @Autowired public void setDependencyB(DependencyB dependencyB) { this.dependencyB = dependencyB; } Field注入 @Autowired private DependencyC dependencyC; 三、选择哪种注入方式 对比这三种方式,Field注入显得清爽又整洁。写的时候方便快捷,读起来也很赏心悦目,看起来肯定要优先选择使用它啊。然而,这种方式是存在一些缺点的。 由于操作简单,代码简洁

第五周编程总结

偶尔善良 提交于 2019-11-30 15:05:09
实验内容 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。) 统计该字符串中字母s出现的次数。 统计该字符串中子串“is”出现的次数。 统计该字符串中单词“is”出现的次数。 实现该字符串的倒序输出。 统计该字符串中字母s出现的次数 实验代码 public class Dome1 { public static void main(String[] args) { String r = "this is a test of java"; int sum = 0; char[] c = r.toCharArray(); for (int i = 0; i < c.length; i++) { if (c[i] == 's') { sum++; }} System.out.println("S的个数为"+sum); } } 实验截图 统计该字符串中子串“is”出现的次数。 实验代码: public class Dome2 { public static void main(String[] args) { String c = "this is a test of java"; int sun = 0; char[] r = c.toCharArray(); for (int i = 0; i < r.length; i++

java - 基础 - 类的关系

霸气de小男生 提交于 2019-11-30 14:50:17
1.泛化(继承,实现) A is a B A有B的所有属性 2.包含(组合,聚合,关联) A has a B B是A的一部分 3.依赖 A use a B A需要B才能实现 继承: 所有类都默认继承object类 object中的方法: hashcode() 将内存地址计算得到一个整数, public native int hashcode(); native: 调用了底层c++语言的方法 equals() 比较内容是否一致 publice boolean equals(object obj){ return this == obj;} toString() 把类的内容转化为String字符串 getClass() 获取类的映射 wait 线程等待 notify 线程唤醒 notifyAll 全部唤醒 finalize protected 类被垃圾回收器回收时调用 clone protected 克隆类对象 子类可以继承父类的所有属性和方法,父类中的所有public属性和方法都可以直接使用,private的可以继承但是不能修改和直接使用。 子类用 extends + 父类 继承 每一个类只能继承一个类,让类变的更加安全。 子类可以添加自己独特的属性和方法 权限:public,protected,默认不写,private 从大到小 子类的权限必须大于等于父类 方法返回值

java继承

泄露秘密 提交于 2019-11-30 13:32:00
1. 在继承的关系中,“子类就是一个父类”。也就是说,子类可以被当做父类看待。 例如父类是员工,子类是讲师,那么“讲师就是一个员工”。关系:is-a。 定义父类的格式:(一个普通的类定义)public class 父类名称 { // ... 定义子类的格式:public class 子类名称 extends 父类名称 { // ... 2 . 在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式: 直接通过子类对象访问成员变量: 等号左边是谁,就优先用谁,没有则向上找。间接通过成员方法访问成员变量: 该方法属于谁,就优先用谁,没有则向上找。*就是就近原则3.变量的定义 局部变量: 直接写成员变量名本类的成员变量: this.成员变量名父类的成员变量: super.成员变量名 4.重写和重载 重写(Override) 概念:在继承关系当中,方法的名称一样,参数列表也一样。 重写(Override):方法的名称一样,参数列表【也一样】。覆盖、覆写。重载(Overload):方法的名称一样,参数列表【不一样】。方法的覆盖重写特点:创建的是子类对象,则优先用子类方法。 5.方法覆盖重写的注意事项: 1. 必须保证父子类之间方法的名称相同,参数列表也相同。@Override:写在方法前面,用来检测是不是有效的正确覆盖重写。这个注解就算不写,只要满足要求

Java this关键字详解

青春壹個敷衍的年華 提交于 2019-11-30 13:31:28
Java中this关键字在构造方法中的使用 Java this关键字详解 this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性。例如: public class Demo { public int x = 10 ; public int y = 15 ; public void sum () { // 通过 this 点取成员变量 int z = this .x + this .y ; System .out . println ( "x + y = " + z ); } public static void main (String [] args ) { Demo obj = new Demo (); obj . sum (); } } 运行结果: x + y = 25 上面的程序中,obj 是 Demo 类的一个实例,this 与 obj 等价,执行 int z = this.x + this.y;,就相当于执行 int z = obj.x + obj.y;。 注意:this 只有在类实例化后才有意义。 使用this区分同名变量 成员变量与方法内部的变量重名时,希望在方法内部调用成员变量,怎么办呢?这时候只能使用this,例如: public class Demo { public String name ; public

java-面对对象构造方法

让人想犯罪 __ 提交于 2019-11-30 13:31:17
构造方法 注意事项: 在类实例化的过程中自动执行的方法叫做构造方法,它不需要你手动调用。构造方法可以在类实例化的过程中做一些初始化的工作。 构造方法的名称必须与类的名称相同,并且没有返回值。 每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认的构造方法。 举个栗子: package com.lechebang.www; /** * Created by manlili on 2016/9/21. */ public class Dog{ String name; int age; public Dog () { //构造方法 System.out.println("我是构造方法"); } void bark(){ // 汪汪叫 System.out.println("汪汪,不要过来"); } void hungry(){ // 饥饿 System.out.println("主人,我饿了"); } } Java中对象 对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步: ①声明:声明一个对象,包括对象名称和对象类型。 ②实例化:使用关键字new来创建一个对象。 ③初始化:使用new创建对象时,会调用构造方法初始化对象。 举个栗子: public class Dog{ String name; int age

第五周总结&实验报告三

好久不见. 提交于 2019-11-30 12:59:09
总结:这周的学习效果没有达到目标,对各种的方法的使用不是很熟悉,还是要多理解书上的内容,多看看书,把每周的实验做好! 以下是这周的基本知识点: 一 .构造方法可以为类中的属性初始化,构造方法与类名称相同,无返回值类型声明,如果在类中没有明确地定义构造方法,则会自动生成一个无参数的什么都不做的构造方法,在一个类中的构造方法可以重载,但是每个类都至少有一个构造方法。 二 .String 类在 Java 中较为特殊, String 可以使用直接赋值的方式或者通过构造方法进行实例化。在 String 中比较内容时使用 equals 方法,而“ == ”比较的只是两个字符串的地址值。字符串的内容一旦声明则不可改变。 三 . 在 Java 中使用 this 关键字可以表示当前的对象,通过“ this. 属性”可以调用本类中的属性,通过“ this. 方法 () ”可以调用本类中的其他方法,通过 this() 的形式调用本类中的构造方法。 四 . 对象数组的使用要分为声明数组和为数组开辟空间两步。开辟空间后数组中的每个元素的内容都是 null 。 六 .Java 中使用包可以实现多人协作的开发模式,避免类名重复的麻烦。使用 package 关键字将一个类放入一个包中,使用 import 语句导入一个已有的包。 七 .Java 中的访问控制权限分为 4 种, private 、 default 、

JAVA基础

人走茶凉 提交于 2019-11-30 12:22:40
最近看了Github上一个巨良心的java项目。准备跟着这个项目对java基础进行一下夯实。 首先对JAVA基础做一下回顾 1. 面向对象和面向过程的区别 面向过程 面向对象 2. Java 语言有哪些特点? 3. 关于 JVM JDK 和 JRE 最详细通俗的解答 JVM JDK 和 JRE 4. Oracle JDK 和 OpenJDK 的对比 5. Java和C++的区别? 6. 什么是 Java 程序的主类 应用程序和小程序的主类有何不同? 7. Java 应用程序与小程序之间有哪些差别? 8. 字符型常量和字符串常量的区别? 9. 构造器 Constructor 是否可被 override? 10. 重载和重写的区别 11. Java 面向对象编程三大特性: 封装 继承 多态 封装 继承 多态 12. String StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的? 13. 自动装箱与拆箱 14. 在一个静态方法内调用一个非静态成员为什么是非法的? 15. 在 Java 中定义一个不做事且没有参数的构造方法的作用 16. import java和javax有什么区别? 17. 接口和抽象类的区别是什么? 18. 成员变量与局部变量的区别有哪些? 19. 创建一个对象用什么运算符?对象实体与对象引用有何不同? 20.