类对象

java基础day10

一曲冷凌霜 提交于 2019-12-04 18:07:13
10.01_面向对象(package关键字的概述及作用)(了解) A:为什么要有包 将字节码(.class)进行分类存放 包其实就是文件夹 B:包的概述 举例: 学生:增加,删除,修改,查询 老师:增加,删除,修改,查询 ... 方案1:按照功能分 com.heima.add AddStudent AddTeacher com.heima.delete DeleteStudent DeleteTeacher com.heima.update UpdateStudent UpdateTeacher com.heima.find FindStudent FindTeacher​方案2:按照模块分 com.heima.teacher AddTeacher DeleteTeacher UpdateTeacher FindTeacher com.heima.student AddStudent DeleteStudent UpdateStudent FindStudent 10.02_面向对象(包的定义及注意事项)(掌握) A:定义包的格式 package 包名; 多级包用.分开即可 B:定义包的注意事项 A:package语句必须是程序的第一条可执行的代码 B:package语句在一个java文件中只能有一个 C:如果没有package,默认表示无包名 C:案例演示 包的定义及注意事项

什么是面向对象

浪子不回头ぞ 提交于 2019-12-04 15:55:26
面向对象有三大特性:封装,继承,多态 一、封装 封装是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。 用private关键字将该类的方法或属性进行封装,主要功能是让程序更容易理解与维护 1.1 this.xxx l this 特殊引用,引用当前对象的地址 l this.xxx 调用成员 l 当有重名局部变量,必须用this.xx调用成员变量 1.2 this(...) l 构造方法之间调用 l 目的是减少代码重复,方便维护修改 l 一般从参数少的方法,调用参数多的方法 l this(...) 必须是首行代码 二、继承   继承的主要作用是代码重用、复用,而私有成员构造方法不能继承:  2.1 子类对象   由父类对象和子类对象绑定,整体作为一个对象   调用成员时,先找子类,再找父类  2.2 父类的构造方法 创建子类对象时,先创建父类对象,也要先执行父类的构造方法 默认执行父类的无参构造 super() 或者可以手动调用父类有参构造 super(...)  2.3 super super.xxxx() 重写时,调用父类同一个方法的代码  2.4 super(...) 调用父类的构造方法 必须是首行代码 三、多态 多态作用是将所有的子类型对象一致的类型,都可以被当做一致的父类型来处理  3.1 向上转型   通过向上转型将子类型对象,转型成父类型  

父类子类指针相互转换问题

核能气质少年 提交于 2019-12-04 14:20:36
父类子类指针相互转换问题 1.当自己的类指针指向自己类的对象时,无论调用的是虚函数还是实函数,其调用的都是自己的: 2.当指向父类对象的父类指针被强制转换成子类指针时候,子类指针调用函数时,只有非重写函数是自己的,虚函数是父类的; 3.当指向子类对象的子类指针被强制转换成父类指针的时候,也就是父类指针指向子类对象,此时,父类指针调用的虚函数都是子类的,而非虚函数都是自己的; 将上面三句话总结成一句话就是: 当父类子类有同名非虚函数的时候,调用的是转换后的指针类型的函数;               当父类子类有同名虚函数的时候呢,调用的是指针转换前指向的对象类型的函数。 详见以下代码: 1 #include <iostream> 2 using namespace std; 3 class Base { 4 public: 5 virtual void f() { cout << "Base::f" << endl; } 6 virtual void g() { cout << "Base::g" << endl; } 7 void h() { cout << "Base::h" << endl; } 8 9 }; 10 class Derived:public Base 11 { 12 public: 13 virtual void f(){cout<<"Derived::f"<

多态

余生长醉 提交于 2019-12-04 12:06:01
下面给大家介绍一些关于多态与抽象的知识: 都是一些比较简单的基础知识,如果有大佬能指导一二,那更是感激不尽 多态: 相同行为,不同实现. 静态多态:编译时,系统就能决定调用哪个方法 动态多态:运行中,系统才能动态确定方法所指的对象. 方法的重载: 满足相同的行为,不同的实现,是多态的一种体现,是静态多态. 方法的重写: 单独的重写也是静态多态 动态多态:使用动态绑定和重写实现 数据类型 基本数据类型 引用数据类型 发生原因 赋值时左右两端数据类型不匹配 赋值时左右两端数据类型不匹配 转换类型 自动(小转大) 强制(大转小) 自动(向上转型) 强制(向下转型) 适用范围 除了boolean其他都可以相互转换 只有继承类才能相互转换 对我们来说要想编译,运行都通过,最终只有两种效果: 1. 父类引用指向子类对象. 编译通过:因为子类和父类就是is-a的关系,所以子类对象就是父类类型的,一点问题也没有. 运行通过:因为每个子类对象在产生过程中,都是采用内存叠加的方式 先产生父类对象部分(就是一个完整的父类对象),然后在叠加子类特有 所以,这个子类对象拥有父类类型类型定义的一切内容 唯一的问题是: 当使用父类引用指向子类对象的时候,该引用只能操作到该对象身上继承与父亲的属性和行为,操作不到这个子类对象自己特有的属性和行为. 如果子类重写了父类的行为,那么只要是子类对象,不管用什么引用去指向

线程

自作多情 提交于 2019-12-04 08:41:55
1 /* 2 * 注线程:执行主(main)方法的线程 3 * 4 * 单线程程序:java程序中只有一个线程执行从main方法开始,从上到下依次执行 5 * 6 * 7 * jvm执行main方法,main方法会进入到栈内存 8 * jvm会找操作系统开辟一条mian方法向cpu的执行路径 9 * cpu就可以通过这个路径来执行main方法 10 * 而这个路径有个名字叫做:主线程 11 * 12 * 13 *缺点: 14 * 中途如果报了异常 15 * 下一个进程就不会运行 16 * 17 * 18 */ 19 public class Demo01MainThread { 20 public static void main(String[] args){ 21 Person p1 = new Person("小明"); 22 p1.run(); 23 24 System.out.println(0/0); 25 26 Person p2 = new Person("小强"); 27 p2.run(); 28 } 29 30 31 32 33 34 35 public class Person { 36 37 private String name; 38 39 public void run(){ 40 //定义循环,执行20次 41 for(int i=0;i<20;i+

android animation

与世无争的帅哥 提交于 2019-12-04 04:38:50
动画效果编程基础--AnimationAndroid 动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 JavaCode中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果 TranslateAnimation 画面转换位置移动动画效果 RotateAnimation 画面转移旋转动画效果 Android动画模式 Animation主要有两种动画模式: 一种是tweened animation(渐变动画) XML中 JavaCode alpha AlphaAnimation scale ScaleAnimation 一种是frame by frame(画面转换动画) XML中 JavaCode translate TranslateAnimation rotate RotateAnimation 如何在XML文件中定义动画 ① 打开Eclipse,新建Android工程 ② 在res目录中新建anim文件夹 ③ 在anim目录中新建一个myanim.xml(注意文件名小写) ④ 加入XML的动画代码 <?xml version="1.0" encoding="utf

java内部类

为君一笑 提交于 2019-12-04 04:38:15
java内部类的几种类型:成员内部类,静态内部类,方法内部类,匿名内部类。 成员内部类: 成员内部类是类内部的非静态类。成员内部类不能定义静态方法和变量(final修饰的除外)。这是因为成员内部类是非静态的,类初始化的时候先初始化静态成员,如果允许成员内部类定义静态变量,那么成员内部类的静态变量初始化顺序是有歧义的。例子如下: 运行结果为:访问外部类中的a:99,访问内部类中的b:2 成员内部类的使用方法:   1、 Inner 类定义在 Outer 类的 内部 , 相当于 Outer 类的一个成员变量的位置 ,Inner 类可以使用 任意访问控制符 ,如 public 、 protected 、 private 等   2、 Inner 类中定义的 test() 方法可以 直接访问 Outer 类中的数据, 而不受访问控制符的影响 ,如直接访问 Outer 类中的 私有属性a   3、 定义了成员内部类后, 必须使用外部类对象来创建内部类对象 ,而 不能直接 去 new 一个内部类对象,即: 内部类 对象名 = 外部类对象.new 内部类( );   4、 编译上面的程序后,会发现产生了两个 .class 文件      其中,第二个是外部类的 .class 文件,第一个是内部类的 .class 文件,即成员内部类的 .class 文件总是这样: 外部类名$内部类名.class

[Android] Android Tweened Animations动画使用详解二

岁酱吖の 提交于 2019-12-04 04:37:41
一、动画类型 Android 的 animation 由四种类型组成: alpha、scale、translate、rotate XML配置文件中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 Java Code代码 中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果 TranslateAnimation 画面转换位置移动动画效果 RotateAnimation 画面转移旋转动画效果 二、Android 动画模式 Animation 主要有两种动画模式: tweened 和 frame 一种是 tweened animation( 渐变动画 ) XML 中 JavaCode alpha AlphaAnimation scale ScaleAnimation 一种是 frame by frame( 画面转换动画 ) XML 中 JavaCode translate TranslateAnimation rotate RotateAnimation 三、XML 文件中定义动画 ①  打开 Eclipse ,新建 Android 工程 ②  在 res 目录中新建 anim 文件夹 ③  在 anim 目录中新建一个 myanim

动态多态的原理

时间秒杀一切 提交于 2019-12-03 22:07:31
多态的三个条件:1.继承,2.虚函数重写,3.父类指针或引用指向子类对象 什么是多态?相同对象收到不同消息或不同对象收到相同消息时产生的不同动作。 首先是多态的分类,分为静态多态和动态多态,也可以称为早绑定和晚绑定,区分的时刻就是程序在编译阶段根据参数个数确定调用哪个函数,如果能够确定就是早绑定如果不能确定就是晚绑定,如果要实现多态就必须要使用虚函数。 从编译角度看: c++编译器在编译的时候,要确定每个对象调用的函数(非虚函数)的地址称为早期绑定,当我们将子类的对象son的地址赋给父类变量时,c++编译器进行了类型转换,此时c++编译器认为父类变量保存的就是父类对象的地址,当在main函数中执行父类变量的方法时,调用的当然就是父类对象的函数。 从内存角度看: 我们构造子类的对象时,首先要调用父类的构造函数去构造父类的对象,然后才调用子类的构造函数完成自身部分的构造,从而拼接出一个完整的子类对象。当我们将子类对象转换为父类型时,该对象就被认为是原对象整个内存模型的上半部分,那么当利用类型转换后的对象指针去调用它的方法时,当然也就是调用它所在的内存中的方法。   正如很多人那么认为,父类变量指向的是子类的对象,如果希望输出的是子类的方法,就要用到虚函数了。   前面输出的结果是因为编译器在编译的时候,就已经确定了对象调用的函数的地址,要解决这个问题就要使用晚绑定

数据挖掘

折月煮酒 提交于 2019-12-03 11:32:53
数据挖掘其实是一种深层次的数据分析方法。数据挖掘可以描述为:按企业既定业务目标,对大量的企业数据进行探索和分析,揭示隐藏的、未知的或验证已知的规律性,并进一步将其模型化的先进有效的方法。 应用的技术包括:数据库技术、人工智能技术、数理统计、可视化技术、并行计算等方面。 数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是数据挖掘是在 没有明确假设的前提下 去挖掘信息、发现知识。数据挖掘所得到的信息应具有先知,有效和可实用三个特征。 数据挖掘的目标是 从数据库中发现隐含的、有意义的知识,主要有以下五类功能。 1.自动预测趋势和行为数据挖掘自动在大型数据库中寻找预测性信息,以往需要进行大量手工分析的问题如今可以迅速直接由数据本身得出结论。 2.关联分析数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。 3.聚类数据库中的记录可被划分为一系列有意义的子集,即聚类。 4.概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。概念描述分为特征性描述和区别性描述,前者描述某类对象的共同特征,后者描述不同类对象之间的区别。 5.偏差检测数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。 数据挖掘技术包括 关联分析、序列分析、分类、预测、聚类分析及时间序列分析 等。 1