马士兵java基础笔记 pdf版 面向对象部分

合集下载

马士兵基础第三章面向对象java—j2se

马士兵基础第三章面向对象java—j2se

9.Object根基类 所有类的根基类
toString方法:
hashcode:
equals方法: 和空值比较返回false
比较两个引用是不是指向同一个 对象
String 和 Date 对equals的重写
10.对象转型:casting
一个基类的引用 可以指向其子类对象
方法是public abstract方法 (默认)
接口之间相互继承
不要实现具有同名方法的接口
方法名一样 参数一样 而返回值不一样 则重名
重载方法:可以根据参数找到对应的方法
应用:构造方法的重载
4.对象的创建与使用 : 使用new关键字创建对象
对象引用。成员变量 来调用对象的成员变量
对象引用。方法 来调用对象的方法
同一类每一个对象 有不同的成员变量存储空间
同一类每一个对象 共享该类的方法
非静态方法针对每一个对象进行调用
5.关键字this
当前对象的引用
处理成员变量和参数重名的情况 Nhomakorabea6.关键字static 单例模式
静态成员变量:
第一次使用时 被初始化
公用的
可以计数用
静态方法:
1.类 对象
类是对象的模版 对象是类的具体事例
类之间的关系 :
关联关系:如方法里面有个参数 是另外一个类的对象
继承关系:**是一种**
聚合关系:
聚集:松散
组合:紧密
实现关系:接口
多态:
面向对象的思想:1)确定一个问题里的类和对象
2)确定类和对象的属性和方法
3)考虑类和类之间的关系

Java学习笔记_马士兵老师视频教学的笔记

Java学习笔记_马士兵老师视频教学的笔记

Java学习笔记学习Java首先要配置环境变量,在电脑属性的高级中,点击环境变量,classpath 中有一英文句号“.”后跟一个分号,表示当前路径的意思。

由第一个程序Helloworld为例说明Java的基本运行代码:public class HelloWorld {public static void main(String args[]) {System.out.println("Hello, World!");}}在Java中只能允许有一个公共类,此区别于C++。

还有Java的写作风格与C和C++有很大区别。

下面细谈Java的基本语法,与其他语言类似,Java每一条语句都以“;”结束。

1.short byte char 之间不会自动转换,他们运算时首先转换为int 然后进行运算;boolean不会进行转换;如:byte b1;byte b2;byte b3=byte(b1+b2);b1+b2运算后是int 类型,可以byte a=1;//可以把数值直接赋值不超范围,(-128~127)float f1=1.234f;long l1=300000000L;f和L一定加上;2.System.out.println( );//输出后换行System.out.print( );//输出后不换行&&和&的区别:表达式1 && 表达式2 只要表达式1 错误,后不再计算,表达式1 & 表达式2 就算表达式1错误表达式2也会计算。

+既可以作为加号,也可以作为连接符,即左右都是字符串,当有一个是字符串,系统默认把另一个转化为字符串再处理。

例如:System.out.println(“c=”+ c);打印时,无论任何类型,都先转换为字符型,再进行打印。

3.聚合关系,就是包含关系,实现关系就像虚基类,在派生类中实现。

4.定义成员变量可以初始化,若不则自动初始化(可以直接在成员变量的定义时初始化);但局部变量一定要自己初始化,boolean类型默认为false,其他默认为0;在main中调用函数时,只要定义了构造函数并且初始化,就一定要把实参的值写到函数里,不能少参数。

马士兵

马士兵

第一部分:J2se学习视频内容包括:尚学堂科技_马士兵_JA V A视频教程_JDK5.0_下载-安装-配置尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第01章_JA V A简介_源代码_及重要说明尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_递归补充尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_基础语法尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第03章_面向对象尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第04章_异常处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第05章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第06章_常用类尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第07章_容器尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第08章_IO尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第09章_线程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JA V A视频教程_J2SE_专题_正则表达式反射avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第二部分:j2se练习项目视频内容包括:尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_JA V A_坦克大战网络版视频教程尚学堂科技_马士兵_snake_贪吃蛇内部视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第三部分数据库视频Oracle视频内容包括:01——53讲avi格式◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第四部分:JDBC和MySQL视频,内容包括:1_lomboz_eclipse_jdbc2_mysql_avi3_连接池的设计思路.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第五部分:HTML & CSS & JA V ASCRIPT 视频:Html & CSS 视频内容简介:01_html简单介绍和meta标签.avi02_a_路径问题等等.avi03_学习方法_其他常用标签.avi04_1_note.avi04_表格和表单_1.avi05_表格和表单_2.avi06_Frame.avi07_Dreamweaver.avi08_CSS_1.avi09_CSS_2_选择方式.avi10_CSS_3.avi11_CSS_4.aviJavaScript 视频简介:01_JS初步及调试.avi02_JS基本语法.avi03_函数_事件处理_1.avi04_事件处理_2.avi05_内置对象_DOM_BOM.avi06_趣味.avi07_实用.avi08_表单验证.avi09_表单验证_new.avi10_后台框架.avi11_后台框架_2.avi12_TREE.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第六部分:Servlet & JSP视频——内容包括:1 tomcat的安装使用,配置2 servlet & jsp 视频1——30节jsp的练习项目内容包括:3 简单bbs项目3 2007美化BBS项目4 网上商城项目视频4 网上商城项目视频讲解视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第七部分:J2EE学习视频包括:DRP项目框架视频学习:Struts视频Hibernate视频Spring视频提高部分:uml统一建模语言视频SSH项目视频:oa办公自动化系统视频crm项目视频银行系统视频ejb3.0视频J2ME_3G简介资料面试材料:面试题大汇总+笔记+技巧尚学堂视频学习顺序(必看)尚学堂视频学习顺序2009-04-22 21:19尚学堂科技_马士兵_JDK5.0下载-安装-配置尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第1章_JA V A简介_源代码_及重要说明尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第2章_基础语法尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第2章_递归补充尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第3章_面向对象尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第4章_异常处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第5章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第5章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第6章_常用类尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第7章_容器尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第8章_IO尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第9章_线程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_坦克大战网络版视频教程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_正则表达式尚学堂科技_张志宇_SERVLET_JSP_视频教程_第一版尚学堂科技_马士兵_JDBC_MYSQL_BBS项目课堂实录视频教程尚学堂科技_马士兵_BBS_项目补充_MySQL简明视频教程尚学堂科技_马士兵_JA V A_系列视频教程_BBS_2007尚学堂科技_马士兵_JA V A_网上商城项目视频讲解尚学堂科技_马士兵_轻松愉快LINUX视频教程尚学堂科技_马士兵_设计模式_01_Observer尚学堂科技_王勇_JA V A视频教程_XML01_XML尚学堂科技_王勇_JA V A视频教程_XML02_XSL尚学堂科技_王勇_JA V A视频教程_XML03_DTD_Schema尚学堂科技_王勇_JA V A视频教程_XML04_JDOM对XML文件的读取尚学堂科技_王勇_JA V A视频教程_Struts01_源代码及重要说明尚学堂科技_王勇_JA V A视频教程_Struts02_多层架构及MVC尚学堂科技_王勇_JA V A视频教程_Struts03_第一个项目尚学堂科技_王勇_JA V A视频教程_Struts04_小结及作业尚学堂科技_王勇_JA V A视频教程_Struts05_Struts标签库尚学堂科技_王勇_JA V A视频教程_Struts06_JSTL_EL表达式尚学堂科技_王勇_JA V A视频教程_Struts07_JSTL_核心库尚学堂科技_王勇_JA V A视频教程_Struts08_JSTL_格式化库及函数库尚学堂科技_王勇_JA V A视频教程_Struts09_Struts标签库实现用户维护作业尚学堂科技_王勇_JA V A视频教程_Struts10_ActionForm尚学堂科技_王勇_JA V A视频教程_Struts11_ActionForward_ActionMapping_Action尚学堂科技_王勇_JA V A视频教程_Struts12_Java国际化尚学堂科技_王勇_JA V A视频教程_Struts13_Struts及JSTL国际化尚学堂科技_王勇_JA V A视频教程_Struts14_动态验证框架尚学堂科技_王勇_JA V A视频教程_Struts15_声明式异常及个性化异常尚学堂科技_王勇_JA V A视频教程_Struts16_ForwardAction_DispatchAction_Struts模式匹配尚学堂科技_王勇_JA V A视频教程_Struts17_JSTL实现物料维护作业尚学堂科技_王勇_JA V A视频教程_Struts18_Struts回顾尚学堂科技_王勇_JA V A视频教程_Hibernate01_源代码及重要说明尚学堂科技_王勇_JA V A视频教程_Hibernate02_主要接口简介及示例尚学堂科技_王勇_JA V A视频教程_Hibernate03_持久对象的生命周期及Query接口初步尚学堂科技_王勇_JA V A视频教程_Hibernate04_常用映射标签及属性尚学堂科技_王勇_JA V A视频教程_Hibernate05_多对一及一对一关联映射尚学堂科技_王勇_JA V A视频教程_Hibernate06_SessionFlush简介尚学堂科技_王勇_JA V A视频教程_Hibernate07_一对多关联映射尚学堂科技_王勇_JA V A视频教程_Hibernate08_多对多关联映射尚学堂科技_王勇_JA V A视频教程_Hibernate09_Lazy策略尚学堂科技_王勇_JA V A视频教程_Hibernate10_继承映射尚学堂科技_王勇_JA V A视频教程_Hibernate11_其他映射尚学堂科技_王勇_JA V A视频教程_Hibernate12_悲观锁与乐观锁尚学堂科技_王勇_JA V A视频教程_Hibernate13_树形结构作业及HQL尚学堂科技_王勇_JA V A视频教程_Hibernate14_一级缓存_二级缓存_查询缓存尚学堂科技_王勇_JA V A视频教程_Hibernate15_抓取策略尚学堂科技_王勇_JA V A视频教程_Hibernate16_物料管理作业及Hibernate回顾尚学堂科技_王勇_JA V A视频教程_Spring01_源代码及重要说明尚学堂科技_王勇_JA V A视频教程_Spring02_Spring简介尚学堂科技_王勇_JA V A视频教程_Spring03_IoC容器尚学堂科技_王勇_JA V A视频教程_Spring04_属性注入尚学堂科技_王勇_JA V A视频教程_Spring05_Bean的作用域及自动装配尚学堂科技_王勇_JA V A视频教程_Spring06_代理模式及AOP术语尚学堂科技_王勇_JA V A视频教程_Spring07_Spring_AOP示例尚学堂科技_王勇_JA V A视频教程_Spring08_事务尚学堂科技_王勇_JA V A视频教程_Spring09_SSH集成尚学堂科技_王勇_JA V A视频教程_Spring10_作业及Spring回顾。

java从入门到精通学习笔记-Lesson2(面向对象上)

java从入门到精通学习笔记-Lesson2(面向对象上)

面向对象编程概述●简单的说,面向面向对象编程(Object Oriented Programming,简称OOP)描述的是对象之间的相互作用。

●面向对象编程与面向过程编程的区别:过程化程序设计先确定算法,再确定数据结构;面向对象编程先确定数据结构,再确定运算。

面向过程编程的程序员,习惯于建立数据结构存放数据并定义方法(函数)来操作数据;面向对象编程的程序员则构造一个对象模型,将数据与方法组织在一起。

对象对象的状态对象的行为●我们把现实世界的事物抽象成对象。

●对象一般都有两个特征:状态(state)和行为(behavior).●软件的对象概念是由现实世界对象抽象而来。

把现实世界的状态保存在软件对象的变量中;现实世界对象的行为通过软件对象的方法(函数)来实现。

类和对象●把相似的对象划归成一个类。

在软件中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的状态(变量)和行为(方法)。

●类是创建对象的模板,对象是类的实例。

面向对象程序设计●从程序设计的角度看,类是面向对象程序中最基本的程序单元。

类实质上定义的是一种数据类型,这种数据类型就是对象类型。

所以我们可以使用类名称来声明对象变量。

●声明对象变量之后,还不能使用对象。

必须用运算符new创建对象实体之后,才能使用对象。

class Point //运行结果为:10 10{int x,y;void output(){System.out.println(x);System.out.println(y);}public static void main(String[] args){Point pt;pt=new Point();pt.x=10;pt.y=10;pt.output();}}class Point //运行结果为:5 5{int x,y;Point() //构造函数没有返回类型修饰符,但可以用public等修饰{x=5;y=5;}void output(){System.out.println(x);System.out.println(y);}public static void main(String[] args){Point pt;pt=new Point(); //首先调用构造函数初始化实例.//pt.x=10;//pt.y=10;pt.output();}}class Point// 运行结果为: 3 3{int x,y;Point(int a,int b) //构造函数没有返回值{x=a;y=b;}void output(){System.out.println(x);System.out.println(y);}public static void main(String[] args){Point pt;pt=new Point(3,3); //首先调用构造函数初始化实例.//pt.x=10;//pt.y=10;pt.output();}}类的构造方法●构造方法的名字和类名相同,并且没有返回值。

马士兵hibernate学习笔记(文字整理版)

马士兵hibernate学习笔记(文字整理版)

马士兵hibernate学习笔记(文字整理版)课程容 (5)1 HelloWorld (5)2 Hibernate原理模拟 - 什么是O/R Mapping以及为什么要有O/R Mapping (5)3 常见的0/R框架(了解) (5)4 hibernate基础配置(重点) (5)5 ID生成策略(重点 AUTO) (5)6 Hibernate核心开发接口介绍(重点) (5)7 对象的三种状态(了解) (5)8 关系映射(重点) (5)9 Hibernate査询(HQL) (5)10 在Struts基础上继续完善BBS200 (5)11 性能优化(重点) (5)12 补充话题 (5)风格 (5)1 先脉络,后细节 (5)2 先操作,后原理 (5)3 重Annotation,轻xml配置文件 (5)资源 (5)1 . (5)2 hibernate zh_CN文档 (5)3 hibernate annotation references (5)环境准备 (5)1 下载hibernate-distribution-3.3.2.GA-dist (5)2 下载hibernate-annotations-3[1].4.0.GA (5)3 注意阅读hibernate compatibility matrix(hibernate download) (5)4 下载slf4jl.5.8 (6)Hibernate HelloWorld (6)1 建立新java 项目,名为hibernate_0100_HelloWorld (6)2 学习建User-library-hibernate,并加入相应的jar包 (6)3 引入mysql的JDBC驱动包 (6)4 在mysql中建立对应的数据库以及表 (6)5 建立hibernate 配置文件hibernate.cfg.xml (6)6 建立Student 类 (6)7 建立Student 映射文件 Student.hbm.xml (6)8 将映射文件加入到hibernate.cfg.xml中 (6)9 写测试类Main,在Main中对Student对象进行直接的存储测试 (6)10 FAQ: (6)11 Note: (6)12 建立能力 (7)建立 Annotation 版本的 HelloWorld (7)1 创建teacher 表,create table teacher (id int primary key, name varhcar(20), title varchar(lO)); (7)2 创建Teacher 类 (7)3 在hibernate lib 中加入annotation的jar包 (7)4 参考Annotaion文档建立对应的注解 (7)5 在hibernate.cfg.xml中建立映射<mapping class:.../〉 . (7)6 参考文裆进行测试(注意文裆中缺少configure()的小bug) (7)7 FAQ: 不给提示 (7)What is and Why 0/R Mapping (7)1 JDBC操作数据库很繁琐 (7)2 Sql语句编写并不是面向对象的 (7)3 可以在对象和关系表之间建立关联来简化编程 (7)4 0/R Mapping 简化编程 (7)5 0/R Mapping跨越数据库平台 (7)6 Hibernate_0200_OR_Mapping_Simulation (7)0/R Mapping Frameworks (7)1 hibernate (7)2 toplink (8)3 jdo (8)4 JPA (8)Hibernate基础配置 (8)1 对应项目:Hibernate_0300_BasicConfiguration (8)2 介绍MSQL的图形化客户端 (8)3 hibernate.cfg.xml: hbni2ddl.auto (8)4 搭建日志环境并配置显示DDL语句 (8)5 搭建jUnit环境 (8)6 hibernate.cfg.xml:show_sql (8)7 hibernate.cfg.xml:format_sql (8)8 表名和类名不同,对表名进行配置 (8)9 字段名和属性相同 (8)10 字段名和属性名不同 (8)11 不需要psersistence的字段(不用列) (8)12 映射日期与时间类型,指定时间精度 (8)13 映射枚举类型( 比较少用) (9)14 字段映射的位置(field或者get方法) (9)15 Lob (9)16 课外:CLOBBLOB类型的数据存取 (9)17 课外:Hibernate自定义数据类型 (9)18 hibernate 类型 (9)ID生成策略 (9)1 对应项目:hibernate_0400_ID (9)2 注意: (9)3 xml生成id (9)4 注解方式:GeneratedValue (9)5 FAQ; (10)6 联合主键 (10)核心幵发接口介绍 (12)1 hibernate_0500_CoreAPI (12)2 Hibernate API文档需要单独下载 (12)3 Configuration (12)4 SessoinFactor (12)5 Session (12)6 SchemaExport (自动建表) (13)7 Query 接口 (13)8 Note: (13)三种对象状态 (14)1 上一个 project (14)2 三种状态的区分关键在于 (14)3 三种状态: (14)4 对这三种状态需要关注的问题是在该状态下如果进行数据库的操作会发生什么结果,比如改变属性的 (14)关系映射(重要) (15)对象之间的关系 (15)1 这里的关系映射指的是对象之间的关系,并不是指数据库的关系,本章解决的问题是当对象之间处于 (15)2 简化问题: (15)3 —对一 (15)4 —对多 (15)5 组件映射 (15)一对一关联 (16)1 一对一单向外键关联 (16)2 一对一双向外键关联 (16)3 一对一单向主键关联(不重要) (17)4 一对一双向主键关联(不重要) (17)5 联合主键 (17)组件映射 (17)1 项目:hibernate_1100_component (17)2 对象关系:一个对象是另外一个对象的一部分 (17)3 数据库表:一表 (17)4 annotation: Embeddable Embbeded (17)5 xml: 使用<component,例如: (18)多对一与一对多 (18)1 多对一单向关联 (18)2 一对多单向关联 (19)3 一对多(多对一)双向关联 (19)多对多 (20)1 单向关联: (20)2 双向关联: (21)关联关系中的CRUD_Cascade_Fetch (21)1 hibernate_1700_one2many_many2one_bi_crud (21)2 设定cascade以设定在持久化时对于关联对象的操作(CUD,R归Fetch管) (21)3 cascade仅仅是帮我们省了编程的麻烦而已,不要把它的作用看的太大 (21)4 铁律:双向关系在程序中要设定双向关联 (22)5 铁律:双向mappedBy (22)6 fetch (22)7 Update时ManyToOne()中的cascade参数关系 (22)8 Delete时ManyToOne()中的cascade关系 (22)9 O/RMapping 编程模型 (23)10 要想删除或者更新先做load,除了精确知道ID之外 (23)11 如果想消除关联关系,先设定关系为null.再删除对应记录,如果不删记录,该记录变成垃圾数据 (23)12 练习:多对多的CRUD (23)关系映射总结 (24)1 什么样的关系,设计什么样的表,进行什么样的映射 (24)2 CRUD,按照自然的理解即可(动手测试) (24)集合映射(不太重要) (24)1 项目名称:hibernate_1800_Collections_Mapping (24)2 Set (24)3 List (与Set差不多多个OrderBy) (24)4 Map (24)继承映射(不太重要) (24)1 三种方式 (24)作业: (24)1 学生课程、分数的设计(重要) (24)2 设计: (25)3 树状结构的设计(至关重要) (25)Hibernate 查询(Query Language) (26)HQL vs EJBQL (26)1 NativeSQL >HQL.> EJBQL(JPQL 1.0) > QBC(Query By Criteria) > QBE(Query By Example)" 262 总结:QL应该和导航关系结合,共同为査询提供服务。

Java学习笔记(必看经典).pdf

Java学习笔记(必看经典).pdf
对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。 实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚 )。 可复用性是 OOP 的基础。
比较面向过程的思想和面向对象的思想: 面向过程的思想:由过程、步骤、函数组成,以过程为核心; 面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。 面向过程是先有算法,后有数据结构。 面向对象是先有数据结构,然后再有算法。
关系运算符:instanceof a instanceof Animal;(这个式子的结果是一个布尔表达式) a 为对象变量,Animal 是类名。 上面语句是判定 a 是否可以贴 Animal 标签。如果可以贴则返回 true,否则返回 false。
在上面的题目中: a instanceof Animal 返回 True, a instanceof Dog 也返回 True,
This 表示当前对象。
Public void printNum(){ Int number=40; System.out.println(this.number);
} 此时打印的是实例变量,而非局部变量,即定义在类中而非方法中的变量。
This.number 表示实例变量。 谁调用 this.number 那么谁即为当前(this)对象的 number 方法。
可以构造多个构造方法,但多个构造方法的参数表一定不同,参数顺序不同即属于不同的构造方法: public student(string name,int a){ } public student(int a,string name){ } 为两个不同的构造方法。 如果我们未给系统提供一个构造方法,那么系统会自动提供一个为空的构造方法。 练习:写一个类,定义一个对象,定义两个构造方法:一个有参,一个无参。 (编写一个程序验证对象的传递的值为地址) 注意下面这种形式: static void changename(student stu){stu.setName “LUCY”} 注意生成新的对象与旧对象指向无关,生成新对象生命消亡与旧对象无关。

马士兵-Java笔记

马士兵-Java笔记

马士兵-Java笔记Java语言的特点:1. 一种面向对象的语言;2. 一种平台无关的语言,提供程序运行的解释环境;3. 一种健壮的语言,吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如:指针,内存的申请与释放等)。

Java两种核心机制:Java虚拟机、垃圾收集机制;一个Java源文件中最多只能有一个public类。

其他类的个数不限,如果源文件包含一个public类,它必须按该类名命名;Java标识符命名规则:1. 标识符由字母、下划线“_”、美元符“$”或数字组成;2. 标识符应以字母、下划线、美元符开头;3. Java标识符大小写敏感,长度无限制。

从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。

数据类型包括基本数据类型和引用数据类型:1. 基本数据类型:数值型:整数类型(byte,short,int,long),浮点类型(float,double)字符型(char)布尔型(boolean)2. 引用数据类型:类(class)接口(interface)数组Java语言的整型常量默认为int型,声明long型常量可以后加‘l’或‘L’。

Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F.Boolean类型不可以转换为其他的数据类型。

整型,字符型,浮点型的暑假在混合运算中相互转换,转换时遵循一下原则:1. 容量小的类型自动转换为容量大的暑假类型;数据类型按容量大小排序为:Byte,short,char->int->long->float->doubleByte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型2. 容量大的暑假类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;使用时要格外注意。

JAVA笔记(根据马士兵的java视频整理)

JAVA笔记(根据马士兵的java视频整理)

JAVA视频教程尚学堂---手把手教程Call:86-主讲教师马士兵SCM系统--------Java+VC跨平台(电信宽带运营平台-------Java+WEB(J2EE)跨平台远程教学平台----Java+WEB(tomcat)VOD视频监控-----VCERP视频会议---------VC新闻发布系统-----Java+XML(模板)网上商城课堂内容、教学方法、学习方法、预备知识、教学资源JAVA基础贯穿数据结构的知识(时间复杂度、链表)---非常重要语法基础【变量、循环、分支】最核心的东西—原理--学好OO【面向对象是最重要的】有新东西学是好事----个人价值Exception 从Java Web开始,框架巨多无比Array【数组】基础类、常用类I/O StreamCollection/Generic【集合类】Thread【线程】TCP/UDP【网络底层】GUI【Graphic User Interface 图形化用户接口窗口】Meta Data【以后讲,与紧密相关】Regular Expression【正规表达式】JDK初步Java Web编程【主攻一个框架---讲原理,略讲其他框架】针对Web程序J2EE【一套标准,包含Java Web 、JDPC、JSP、SP、JB/开源框架—就分步式来说,目前(2005)无东西与之抗衡】(比较,,)企业级应用J2ME移动设备移动增值SP运营商3G,2.5G,要火爆起来【网络先铺起来,应用才能上来;3G的网络还没有铺开、火爆起来,讲3G的应用超前了】巨无霸式的教学理论举例理论回顾练习讲解【三片面包加两片肉】注重结合工程实践【完全结合】注重传授自学能力【自学的东西相当重要,授人以鱼,不如授人以渔;慢慢学会掌握一定基础后才有,灌输、背,融成血液里的一部分,心中无剑,手中有剑—前提—心中有剑手中也有剑;时间短,强度大,该背就背】个人能力分三个层次知识学习前人的知识---学习能力的一个表现,被动地接受—接受能力{自己学习了知识后考虑如何去应用,去---学习解决问题的方法【类似问题遇到过】灵活运用学到的知识【碰到什么问题采用什么方法】解决问题的思路【最高层次】创造解决问题的方法【思路掌握了,遇到新问题,自己拓展一条思路,解决问题,不可能一口吃成一个胖子,沿着这三个层次一点一点往上升首先打造自己学习知识的能力,先把该掌握的知识掌握了,再谈如何应用---如何教---教大家写项目每一个知识教太深—给项目留得时间特别短---不合适;自学一些东西,慢慢去培养解决问题的思路,试着朝这个方向去培养,工作后慢慢遇到新问题使劲去思考了积累起来逐渐会有这个能力,灵活一点、再灵活一点!基础知识要背—灵活应用的东西不能背,无一定之规,在实践中慢慢锻炼—实践的越多—敲的代码越多(掌握思路后自主敲代码,哪怕敲不出来再看别人的思路—收获远远不一样,学习要自主一点,多思考思路才能开阔—无捷径,努力锻炼自己的就业能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

public class Test{ public static void main(String args[]){ Test test = new Test(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000)(1); test.change1(date)(4); test.change2(d1);(7) test.change3(d2);
b.setDay(22),把 b 指向的值改变了,这次真 的变了!
方法执行完后,b 消失,d2 的值变了。
四. 方法重载 类中可以定义相同名字但参数不同的方法。
五. this 关键字 this 指向对象自身的引用。
在类的方法定义中使用 this 关键字代表使用该方法的对象的引用。 当必须指出当前使用方法的对象是谁时要使用 this 有时使用 this 可以处理方法中成员变量和参数重名的情况 this 可以看作是一个变量,它的值是当前对象的引用
_id:1
age = _age; }
_age:25
public static void main(String[] args) {
Person tom = new Person(1, 25); } }
tom:XXX Stack
id:1 age:25
Heap
例子:
class BirthDate { private int day; private int month; private int year; public BirthDate(int d, int m, int y) { //构造方法 day = d; month = m; year = y; }
= name; id = sid++; } public void info(){
name mimi:xxx
"mimi" sid:100
数据区System.out. Nhomakorabearintln ("My name is "+name+" No."+id);
}
id name
id name
public static void main(String arg[]){

5. 构造函数(构造方法) 使用 new +构造方法,创建一个新的对象。 构造函数是定义在 Java 类中的一个用来初始化对象的函数。 构造函数没有返回值。
public class Person {
int id;
int age;
tom:XXX
Person(int _id, int _age) { id = _id;
刚开始,b 执行 d1 执行的对象,但是 new 出 来了一个新对象,b 指向了新的对象
执行完之后,b 这个局部变量消失了,堆里面 的内存不是马上消失,垃圾收集器收集的时 候才消失,但是栈里面的内容马上消失的! 对象里面的值(d1)依然没有变!
change3,把 d2 传进来,b 指向了 d2 指向的 对象
(package)机制,提供类的多重类命名空间 八. 类的继承和权限控制 Java 中使用 extends 关键字实现类的继承机制 通过继承,子类自动拥有基类的所有成员(成员变量和方法) Java 只支持单继承,不允许多继承
name Person
age
student
school
new 一个子类对象出来的时候内存的情况 权限控制:
public void setDay(int d) { day = d;
} public void setMonth(int m) {
month = m; } public void setYear(int y) {
year = y; } public int getDay() { //int 表示返回值类型
public class Leaf(){
int i = 0;
Leaf(int i) {
this.i = i;
}
…main() {
Leaf lf = new Leaf(9);
}
}
注意这里有两个 i。
六. static 关键字
在类中,static 声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用
如果子类构造方法中既没有显示调用基类构造方法,而基类中又没有无参的构造方法,
则编译出错。
十一. Object 类与 toString()方法,hashCode,equals 方法
Object 类中定义有 public String toString()方法,其返回值是 String 类型,描述当前对象
时被初始化,对于该类的所有对象来说,static 成员变量只有一份。
用 static 声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以
在 static 方法中不可方法非 static 方法。
静态方法不再是针对某个对象调用,所以不能访问非静态成员。
可以通过对象引用或类名(不需要实例化)访问静态成员。类名.静态成员变量.
相当于
public static void main(String[] args) {
public class toString {
Dog d = new Dog();
public static void main(String[] args) {
System.out.println("d: " + d);
String s = new String(“aaa”); s[],s 在栈中,”aaa”在堆里面。 4. 对象的创建和使用 必须使用 new 关键字创建对象。 使用对象(引用).成员变量或来引用对象的成员变量。
使用对象(引用).方法或来引用对象的方法。 同一类的每个对象有不同的成员变量存储空间
Dog d = new Dog();
}
System.out.println("d: " +
}
d.toString());
输出:
}
d: Dog@de6ced
}
继承自 Object,可以重写该方法。建议所有子类都重写此方法(Java API)
getClass().getName() + '@' + Integer.toHexString(hashCode())
System.out.println("date=" + date); d1.display(); d2.display(); } public void change1(int i){ (2)i = 1234(3); } public void change2(BirthDate b) { (5)b = new BirthDate(22,2,2004); (6) } public void change3(BirthDate b) { (8)b.setDay(22);(9) } }
的有关信息。
在进行 String 与其他类型数据的连接操作时(System.out.println(“info ” + person )),将自
动调用对象类的 toString()方法。
可以根据需要在用户自定义类型中重新 toString()方法。
public class toString {
九. super 关键字
student:xx
name Person
age
super this
十.继承中的构造方法 子类的构造过程中必须调用基类的构造方法 子类可以在自己的构造方法中使用 super()调用基类的构造方法
使用 this 调用本类另外的构造方法; 如果调用 super,必须写在子类构造方法的第一行 使用子类的构造方法中没有显示的调用基类构造方法,则系统默认调用基类无参数的构 造方法。
一 面向对象设计思想 面向对象设计思想是,从现实世界中客观存在的事物出发构造软件系统,并在系统的构
造中尽可能运用人类的自然思维方式。 面向对象更加强调运用人类在日常思维逻辑中经常采用的思想方法与原则,如抽象、分
类、继承、聚合、多态。 对象用计算机语言对问题与中事物的描述,对象通过属性(attribute)和方法(method)来分
别对应事物所具有的静态属性和动态属性。 类是用于描述同一类型的对象的一个抽象的概念,类中定义了这一对象所因具有的静态
和动态属性。 类可以看成一类对象的模板,对象可以看成该类的一个具体实例。 类(对象)之间的关系:
1. 关联关系:映射到代码一个类的方法里面是另外一个类的对象,我的方法的参数是 你这个类的对象
类名 + „@‟ + hash 编码。
对象
对象
hashCode
对象
对象
对象
对象
java 虚拟机,用一张表记录每个对象在什么位置上,这个表一般用哈希编码来记录,每个对 象都有自己独一无二的哈希编码,根据编码可以找到相关对象,并可以找到对象的位置。 equals 方法:提供定义对象是否“相等”的逻辑,对于任何非空引用值 x 和 y,当且仅
2. 继承关系:什么什么是什么
3. 聚合关系 聚集:谁谁是谁的一部分。组合:咱们俩密不可分!
4. 实现关系:
5. 多态
总结: 考虑问题里面有哪几个类,哪几个对象;找名词 每种类有哪些属性和方法; 类和类之间的关系。
二 Java 与面向对象 对象是 Java 的核心,在 Java 中“万事万物皆对象”。 对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体。 类是用来创建同一类型的对象的模板,在一个类中定义了该类对象所具有的成员变量以
相关文档
最新文档