类对象

JAVA面向对象的三大特性 多态

天大地大妈咪最大 提交于 2020-02-07 04:46:05
多态 指的是对象的多种形态 继承是多态的实现基础,别忘了子父类要有继承关系. 多态特性: 一、引用多态 1.父类引用可以指向本类对象 Animal obj1 = new Animal(); 2.父类引用可以指向子类对象 Animal obj2 = new Dog(); 但是我们不能用子类的引用指向父类对象 Dog obj3 = new Animal();//错 二、方法多态 创建本类对象时,调用的方法为本类方法。 创建子类对象时,调用的方法为子类重写的方法或者继承的方法。 1.在父类Animal中定义一个eat()方法,输出一个语句(动物有吃的能力); 在子类Dog中重写eat()方法,输出一个语句(狗是吃肉的); 那么我们在测试类main函数里面,如果obj1.eat() ,那么调用的是父类的方法. 若用obj2调用eat()方法,那么调用的是子类的方法. 2.还有一种情况,比如创建一个继承父类Animal的子类Cat ,但是Cat里并不重写继承的eat()方法. 然后,我们在测试类main函数里创建一个子类对象, Animal obj3 = new Cat(); 然后调用 obj3.eat(); 那么,结果调用的则是子类继承父类的方法. (输出结果:动物有吃的能力) 3.最后一种特殊情况,多态的特性是不能使用的. 若在子类添加一个独有的方法 public void

12.Java String类详解

二次信任 提交于 2020-02-07 04:13:42
String类是一个字符串类型的类,使用“XXXX”定义的内容都是字符串,虽然这个类在使用上有一些特殊,但是String本身是一个类。 一、String的实例化两种方式 1、直接赋值实例化: String StringName= "xxx" ; 以上是String对象的直接赋值,以上的代码并没有使用关键字new进行。String类也是类,所以也有构造方法。 2、使用构造方法实例化: public String (String str); 可以通过构造方法为String类对象实例化,但在构造里面依然要接收一个本类对象。 二、字符串的比较 如果要想知道两个int型变量是否相等,使用“==”进行验证,在String中也可以使用“==”来进行比较。我们来看一个例子: public class StringDemo { public static void main (String args[]) { String str1 = "Hello" ; String str2 = new String( "Hello" ) ; String str3 = str2 ; // 引用传递 System. out .println(str1 == str2) ; System. out .println(str1 == str3) ; System. out .println(str2 == str3

Java第十九章-数据库操作

不羁岁月 提交于 2020-02-07 03:12:46
绪论 //数据库系统是由数据库、数据库管理系统、应用系统、数据库管理员构成的。 连接数据库 //通过创建的getConnection()方法,获取与MySQL数据库的连接。 package 数据库操作; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; public class Conn { //声明Connection对象 Connection conn; public Connection getConnection() { //加载数据库驱动类 try { Class.forName("com.myaql.jbdc.Driver"); System.out.println("数据库加载成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); } //通过访问数据库的URL,获取数据库连接对象 try { conn = DriverManager.getConnection("jdbc.mysql:" + "//127.0.0.1:3306/test","root", "123456"); System.out.println(

软件架构设计的七大原则

时光毁灭记忆、已成空白 提交于 2020-02-06 06:54:05
软件架构设计有七大原则,分别是:   1.开闭原则   2.依赖倒置原则   3.单一职责原则   4.接口隔离原则   5.迪米特法则(最小知道原则)   6.里氏替换原则   7.合成/聚合复用原则 下面分别具体说明: 1.开闭原则 :对扩展开放,对修改关闭 说的是,再设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展. 换言之,应当可以在不必修改源代码的情况下改变这个模块的行为,在保持系统一定稳定性的基础上,对系统进行扩展。 例如:一般软件功能的升级就需要符合开闭原则,即不去修改原来的代码,而是去增加新功能。 2.依赖倒置原则 :实现尽量依赖抽象,不依赖具体实现。 该原则有以下三点说明 1、高层模块不应该依赖于底层模块,两者都应该依赖于抽象, 2、抽象不应该依赖于细节,即具体实现类。 3、细节应该依赖于抽象。 这样带来的好处,可以减少类与类之间的耦合性,提高系统的稳定性,提高代码的可读性和可维护性,并且可以降低修改程序所造成的的风险。 例如:我们在日常开发中拿到需求之后,一般都是面向接口编程,先设计出顶层,在细节的来设计代码的结构。(以抽象为基准比以细节为基准搭建起来的架构要稳定的多) 3.单一职责原则 :对于一个类而言,应该仅存在一个可以引起类变化的原因。 从概念来说可能不大好理解,简单的来讲,就是我们平时在编程的时候,会在一个类上添加各种各样的功能

第10章-内部类II

喜你入骨 提交于 2020-02-06 03:38:49
Think in java 读书笔记 pikzas 2019.05.05 第十章 内部类 知识点 1.什么是内部类 可以将一个类定义在另一个类的内部 class OuterClass{ class InnerClass{ } } 2.内部类的主要特征是什么 内部类的主要特征是内部类可以随意访问外部类的属性和方法,不论其访问修饰符是什么 public interface Selector { boolean end(); Object current(); void next(); } public class Seq { private Object[] items; private int next = 0; public Seq(int size){ items = new Object[size]; } public void add(Object item){ if(next < items.length){ items[next++] = item; } } private class SeqSelector implements Selector{ private int i = 0; @Override public boolean end() { return i == items.length; } @Override public Object current(

Java内部类

南楼画角 提交于 2020-02-06 03:33:24
—— 你放心去浪,我替你说谎。 一、内部类与外部类之间的关系 1、内部类定义于外部类中,是一个相对独立的实体,对该外部类文件进行编译,会产生两个.class文件,其中内部类的.class文件名名称为 外部类名$内部类名.class。 2、内部类可以访问外部类的所有方法和属性,即使是私有,这是因为内部类持有一个外部类的一个引用。外部类无法直接访问内部类的属性和方法,必须通过内部类的对象引用才能进行访问,如果是静态内部类,外部类可以通过内部类的类名来引用静态变量。 3、内部类如果要声明静态变量,内部类必须声明为静态类。 二、非静态内部类对象的创建 1、在外部类之外创建内部类对象,需要先创建外部类对象,在通过外部类对象调用内部类的构造方法进行实例化。外部类对象只能调用内部类的构造方法,非构造方法以及元素必须通过内部类引用才能调用。 2、如果在外部类内部创建内部类对象,可以直接调用内部类的构造方法进行创建。构造方法可以被外部类调用,其他方法和属性必须通过内部类引用或类名才能调用。 三、内部类的分类 1、成员内部类:定义在外部类中的普通类(非static),属于外部类的成员,可以访问外部类的任何变量和方法。 2、局部内部类:定义在外部类的局部范围内,例如定义在方法中,只允许在方法中访问该内部类,不允许在方法外访问。局部内部类一般用在用于辅助解决问题而又不希望创建一个公共类的场景。 3

JAVA的三大特征之一--------------多态

我与影子孤独终老i 提交于 2020-02-06 01:39:29
一:多态的定义: 一个对象有多种形态 就称为多态 package 面向对象.多态.A; class Animal { void eat() { System.out.println("动物吃东西!"); } } class Dog extends Animal{ void eat() { System.out.println("狗吃骨头!"); } } class Cat extends Animal{ void eat() { System.out.print("猫吃鱼!"); } } public class Test { public static void main(String[] args) { //狗是动物类 //一个对象有多种形态 就称为多态 //一个表示自己的类,一个表示自己父类的类型 //子类对象赋值给父类类型 //运行时,表现得是子类的特征(先去找子类) //Animal dog = new Dog(); Dog dog = new Dog(); dog.eat(); //Animal cat = new Cat(); Cat cat= new Cat(); cat.eat(); System.out.println(cat.getClass()); /*** * 子类对象赋值给父类类型 * 运行时,表现的是子类的特征(先去找子类) */ } } 二

Java反射机制详解

末鹿安然 提交于 2020-02-05 23:50:07
文章目录 1、反射机制 1.1什么是反射机制 1.2反射机制能做什么 1.3反射机制的相关API 2、获取一个Class对象(反射)的三种方式 2.1类文字 2.2使用Object类的getClass()方法 2.3使用Class类的forName()方法 3、通过Class对象获取一个类的信息(类名、包名、修饰符等) 4、通过Class对象获取一个类的字段 5、通过Class对象获取一个类的构造函数 6、通过Class对象获取一个类的实例方法 7、通过Class对象创建一个类的对象 6.1无参构造函数 6.2有参构造函数 6.3通过构造的实例调用方法 8、通过反射创建、获取、修改数组信息 1、反射机制 1.1什么是反射机制 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 1.2反射机制能做什么 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在运行时调用任意一个对象的方法; 生成动态代理。 1.3反射机制的相关API 通过一个对象获得完整的包名和类名 实例化一个类对象(使用构造函数,默认的和带参数的) 返回一个类实现的接口 取得一个类的父类

1. Java8新特性_简介

被刻印的时光 ゝ 提交于 2020-02-05 12:38:36
hashmap默认16,超过后提供加载因子0.75 超过75%自动扩容,不能小于75%(浪费空间),扩容后链表内容重新排序,碰撞概率降低 数组——链表——红黑树 每个链表长度大于8并且总容量大于64,链表会转变成红黑树(除了添加外,都比链表快) hashmap hashset concurrenthashmap 1、速度更快 2、代码更少(增加了新的语法Lambda表达式) 一、类:用Class修饰符修饰的就是类 二、方法的声明(定义) 修饰符 返回值类型 方法名([参数类型 参数名1, 参数类型 参数名2, ...]){ 执行语句 ... [return 返回值;] } // []中的数据可以没有 我们可以看到方法的基本组成包括:名称、参数、返回值和方法体。 修饰符:方法的修饰符较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等。 返回值类型:用于限定方法返回值的数据类型。 参数类型:用于限定调用方法时参数参数的类型。 参数名:是一个变量,用于接收调用方法时传入的数据。 return关键字:用于结束方法以及返回方法指定类型的值。 当方法以void关键字声明,那么此方法没有返回值;但可以使用return来结束调用。 三、构造器 用于创建对象并初始化对象属性的方法,叫“构造方法”,也叫“构造器”;构造器在类中定义。 构造器的名称必须与类名同名

Python3基础(十) 类的初印象

喜你入骨 提交于 2020-02-04 13:50:45
Python是一种面向对象的脚本语言,所以它也提供了面向对象编程的所有基本特征: 允许多继承的类继承机制 、 派生类可以重写它父类的任何方法 、 一个方法可以调用父类中同名的方法 、 对象可以包含任意数量和类型的数据成员 。关于继承,将在下一篇博文里面介绍,本文只简单的介绍Python中的类的定义和使用。 一、类定义 最简单的类的定义形式: class ClassName: <statement-1> . . . <statement-N> 类定义会创建一个新的命名空间,作为一个局部的作用域。在Python中,类本身就是对象,当一个类定义结束后, 一个 Class Object 就被创建。 二、类对象 类对象(Class Object)支持两种操作: 属性引用 和 实例化 。 属性引用 类对象的属性引用和 Python 中所有的属性引用一样,形式为: obj.name 。类对象创建后,类命名空间中所有的名字都是有效属性名,像下面这个类: class MyClass: """A simple example class""" i = 12345 def f(self): return 'hello world' 它有一个属性 i 和 方法 f ,所以可以用 MyClass.i 和 MyClass.f 进行属性引用,分别返回一个整数和一个函数对象。 __doc__ 也是一个合法的属性