- 浏览: 632692 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (609)
- java (139)
- 数据库 (107)
- 微信 (23)
- IT生活 (5)
- web前端 (74)
- SSH (11)
- 设计模式 (12)
- 重要资料 (11)
- 其他 (15)
- java技巧 (23)
- 服务器 (9)
- 2D/GUI (3)
- JAVA3D (2)
- ANT (5)
- Apache项目 (19)
- 数据类型 (10)
- 报表 (3)
- Collections (6)
- SQL/JDBC (15)
- 开发类 (6)
- EJB (6)
- Email (6)
- 文件读写 (2)
- 游戏 (0)
- Flex (2)
- Generic (2)
- HIbernate (12)
- I18N (5)
- Java EE (9)
- java ME (4)
- JDK 6 (8)
- JNDI/LDAP (5)
- JSP (7)
- JSTL (2)
- 正则表达式 (2)
- 安全 (2)
- Struts2 (12)
- Spring (4)
- Web服务 (10)
- Xml (1)
- JavaScript (30)
- AJAX (7)
- 验证 (4)
- 上传下载 (1)
- office办公软件 (1)
- Android (2)
- IOS (0)
- Dubbo (3)
- memcached/redis (1)
- 小程序 (1)
- 微信公众号 (0)
最新评论
-
wf_wangfeng:
怎么我用第一种方法不行呢 alert(document.rea ...
当jsp页面完全加载完成后执行一个js函数 -
Lori_Liu:
有帮助,至少可以解决了目前所遇到的问题!谢谢..
当jsp页面完全加载完成后执行一个js函数 -
starbhhc:
String actionMessage = new Stri ...
Java读取txt文件乱码 -
starbhhc:
Sev7en_jun 写道GOOD
客气,互相交流。。
javaeye论坛规则小测验(答案)--star -
Sev7en_jun:
GOOD
javaeye论坛规则小测验(答案)--star
编译生成包
如果在程序Test.java中定义了包p1
编译时 javac -d . Test.java 在当前目录下建立子目录p1,将生成的class文件放在p1下
(.可换成所需目录)
多态性:
子类的对象可以替代父类的对象使用,一个引用类型变量可以引用其声明类型的对象,也可以引用其声明类型的子类的对象,如:
Person p=new Student(); //Student是Person的子类
System.out.println(p.getInfo()); //调用的是子类重写的getInfo方法(虚方法调用)
如果子类没有重写这个方法,则根据继承,会调用父类的该方法.
如果一个引用类型变量声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法,如:
Student m= new Student();
m.setSchool("pku"); //合法
Person e = new Student();
e.setSchool("pku"); //非法
方法声明的参数类型为父类类型,可以使用子类的对象作为实参调用该方法,不能是非子类的调用;
如:
public class Test{
public void show(Person p){
System.out.println(p.getInfo());
}
public static void main(String[] args){
Test t=new Test();
Person p=new Person();
t.show(p);
Student s=new Student();
t.show(s);//合法,调用子类的getInfo()方法;
}
}
对象造型(Casting)
子类到父类的类型转换自动进行:
Person p=new Student();
在多态情况下,父类到子类的类型转换必须强制类型转换实现:
Person p1=new Student();
Student s1=(Student)p1;//合法
Person p2=new Person();
Student s2=(Student)p2;//非法
无继承关系引用类型间转换是非法的:
String s="Hello,World!";
Person p=(Person)s;//非法
instanceof运算符
用于检测一个对象的真实类型:
if(s instanceof Person){ //如果s是Person的类型,返回值为true;
Student stu=(Student)s;
}
协变返回类型
重写方法时修改其返回值的类型,但必须是重写前方法返回值类型的子类或实现类类型:
class A{
public Person getAssistor(){
Person p=new Person();
//---
return p;
}
}
class B extends A{
public Student getAssistor(){
Student s=new Student();
//---
return s;
}
}
在构造方法的第一行使用关键字this调用其它(重载的)构造方法:
public class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public Person(String name){
this(name,18);
}
public Person(int age){
this("Anonymous",age);
}
}
super调用其父类的构造方法,super和this调用构造方法时只能用其中一个(因为两个都要求是在构造方法的第一行!!)
静态导入
用于在一个类中导入其他类或接口中的static成员
import static java.lang.Math.*;
public class StaticTest
{
public static void main(String[] args){
double d=sin(PI*0.45); //double d=Math.sin(Math.PI*0.45);
System.out.println(d);
}
}
Singleton设计模式(任何时候生成的对象只有一个)
构造方法为private,通过静态方法去调用该构造方法
public class Single{
private String name;
private static Single onlyone = new Single();
private Single(){
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public static Single getSingle() {
return onlyone;
}
}
public class TestSingle{
public static void m1(){
Single s2 = Single.getSingle();
System.out.println(s2.getName());
}
public static void main(String args[]) {
// Single s1=new Single();不允许直接使用私有的方法
Single s1 = Single.getSingle();//s1与s2生成的对象都是同一个
s1.setName("Tom");
m1();
}
}
如果在程序Test.java中定义了包p1
编译时 javac -d . Test.java 在当前目录下建立子目录p1,将生成的class文件放在p1下
(.可换成所需目录)
多态性:
子类的对象可以替代父类的对象使用,一个引用类型变量可以引用其声明类型的对象,也可以引用其声明类型的子类的对象,如:
Person p=new Student(); //Student是Person的子类
System.out.println(p.getInfo()); //调用的是子类重写的getInfo方法(虚方法调用)
如果子类没有重写这个方法,则根据继承,会调用父类的该方法.
如果一个引用类型变量声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法,如:
Student m= new Student();
m.setSchool("pku"); //合法
Person e = new Student();
e.setSchool("pku"); //非法
方法声明的参数类型为父类类型,可以使用子类的对象作为实参调用该方法,不能是非子类的调用;
如:
public class Test{
public void show(Person p){
System.out.println(p.getInfo());
}
public static void main(String[] args){
Test t=new Test();
Person p=new Person();
t.show(p);
Student s=new Student();
t.show(s);//合法,调用子类的getInfo()方法;
}
}
对象造型(Casting)
子类到父类的类型转换自动进行:
Person p=new Student();
在多态情况下,父类到子类的类型转换必须强制类型转换实现:
Person p1=new Student();
Student s1=(Student)p1;//合法
Person p2=new Person();
Student s2=(Student)p2;//非法
无继承关系引用类型间转换是非法的:
String s="Hello,World!";
Person p=(Person)s;//非法
instanceof运算符
用于检测一个对象的真实类型:
if(s instanceof Person){ //如果s是Person的类型,返回值为true;
Student stu=(Student)s;
}
协变返回类型
重写方法时修改其返回值的类型,但必须是重写前方法返回值类型的子类或实现类类型:
class A{
public Person getAssistor(){
Person p=new Person();
//---
return p;
}
}
class B extends A{
public Student getAssistor(){
Student s=new Student();
//---
return s;
}
}
在构造方法的第一行使用关键字this调用其它(重载的)构造方法:
public class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public Person(String name){
this(name,18);
}
public Person(int age){
this("Anonymous",age);
}
}
super调用其父类的构造方法,super和this调用构造方法时只能用其中一个(因为两个都要求是在构造方法的第一行!!)
静态导入
用于在一个类中导入其他类或接口中的static成员
import static java.lang.Math.*;
public class StaticTest
{
public static void main(String[] args){
double d=sin(PI*0.45); //double d=Math.sin(Math.PI*0.45);
System.out.println(d);
}
}
Singleton设计模式(任何时候生成的对象只有一个)
构造方法为private,通过静态方法去调用该构造方法
public class Single{
private String name;
private static Single onlyone = new Single();
private Single(){
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public static Single getSingle() {
return onlyone;
}
}
public class TestSingle{
public static void m1(){
Single s2 = Single.getSingle();
System.out.println(s2.getName());
}
public static void main(String args[]) {
// Single s1=new Single();不允许直接使用私有的方法
Single s1 = Single.getSingle();//s1与s2生成的对象都是同一个
s1.setName("Tom");
m1();
}
}
发表评论
-
maven项目第一行报错:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.mave
2020-04-09 01:23 447maven项目第一行报错:org.apache.maven.a ... -
删除项目中的所有.svn文件夹(或CVS文件夹)
2019-06-06 19:19 400当你的项目用SVN管理时,在项目的每个文件夹中会多一个.svn ... -
eclipse下生成Java类图和时序图,生成UML图
2016-12-30 02:28 2000最近老板让我做类图和时序图,提苦恼的,完全不会,就从网上整理 ... -
eclipse使用ModelGoon插件自动生成java类的UML图
2016-12-30 02:23 11831、ModelGoon介绍 ModelGo ... -
linux下的tomcat jvm内存
2016-11-30 23:19 542常见的内存溢出有以下两种: Java.lang.OutOf ... -
FTP实现客户端与服务器文件传输(二)
2016-08-06 01:22 971/*以sun开头的class不是java里面的标准类,而是 ... -
java实现文件转换成二进制存储与取出
2016-08-06 01:21 2636一、功能描述: 将文件转成二进制数据放入数据库中,需要的 ... -
Resource specification not allowed here for source level below 1.7
2016-08-05 11:14 1074现象:tomcat能正常启动,但打开页面时,出现上面的错误 ... -
使用commons.net FTP 和sun.net.ftp.FtpClient 多种方式上传下载(包括批量)删除功能(一)
2016-08-04 10:38 637使用commons.net FTP 上传下载删除功能 ... -
第十一节 CAS服务端RememberMe
2016-06-07 11:03 1120关于启用RememberMe功能所需做的修改描述 ... -
第七节:CAS4.0.0 以上服务端配置多个数据源
2016-06-03 14:50 10471.首先打开deployerConfigContext.x ... -
第六节:CAS服务端自定义数据库认证用户
2016-06-03 11:46 2284/** * @see --------------- ... -
第四节:将CAS https的认证方式改为http
2016-06-01 08:49 1639一、CAS Server端的修改 1、找到cas\W ... -
java 读取html过滤标签
2016-05-27 16:19 941public static void main(Strin ... -
获取cookie
2016-05-26 16:07 766获取cookie -
spring同时集成redis和mongodb时遇到多个资源文件加载的问题
2016-05-14 15:40 727两天平台中集成redis和mongodb遇到一个问题 单独 ... -
Windows上安装OpenSSL和生成证书
2016-05-10 15:52 22771,先下载OpenSSL http://www.slpr ... -
4.ubuntu14.04 安装mongodb笔记
2016-05-06 08:52 6191、使用系统自动获取安装。 1)获取更新 s ... -
3.nodejs nodejs的mysql模块
2016-04-12 22:20 509安装nodejs的mysql模块首先要选定一个数据库,我选择 ... -
第二节:cas处理中文乱码
2016-04-07 11:38 1214cas service配置参考第一节。 casServi ...
相关推荐
中信软件教育培训机构高级讲师蔡老师的面向对象编程总结,内容精简!
Java面向对象重要概念小结Java面向对象重要概念小结Java面向对象重要概念小结Java面向对象重要概念小结
1/7 页 《面向对象编程与设计(Java) 》课后作业及参考解答 1.1.1 第一周 课程(9 月 4 日)的课后作业及参考解答 1、 请用 Java 程序示例说明什么是面向过程的程序设计方法、什么是面向对象的程序 设计方法?...
完成Java面向对象程序设计实验课的心得体会 Java面向对象程序设计实验课的心得体会 经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中...
java语法个人学习的一个小总结,个人心得,分享日常学习的java
小结 Path的主要功能是设置JDK的可执行命令 classpath主要是在执行时候起作用,告诉JVM类的保存路径,一般设置成“.” 【注意】classpath只在java命令的时候起作用,而对于javac不起任何作用 2.简单JAVA程序 使用...
Java面向对象程序设计实验课的心得体会 经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到 能够自主运用。...
1. Java基础 1.1 getPath()、getAbsolutePath()、getCanonicalPath()的区别 . . . . . ....1.2 file的getPath getAbsolutePath和...1.12 面向对象设计61点经验原则 . . . . . . . . . . . . . . . . . . . . . 37
第05章 面向对象(下) 02 继承小结
本篇文章主要对java面向对象的六原则一法则进行简要说明,具有一定的参考价值,下面跟着小编一起来看下吧
第1章 面向对象软件开发概述MSCBSC 移动通信论坛4o&D'f:G:\ P&M,z 1.1 面向对象问题求解的提出0@'}#j3L1a4y(v1Y'E8D 1.2 面向对象问题求解概述 6X2G/X+R;e.A$i.W | 国内领先的通信技术论坛1.3 对象、类与实体 8S2h,}...
★ 第三讲 Java语言中的面向对象特性 ◇课前索引 ◇3.1 面向对象技术基础 ◇3.2 Java语言的面向对象特性 ◇本讲小结 ◇课后习题 ★ 第四讲 Java的例外处理和I/O流 ◇课前索引 ◇4.1 什么是例外 ◇4.2 例外...
这是清华大学的一套JAVA教程,包括详尽的例子、课后习题与解答、相关计算机英语词汇,就课程...同时Java语言是一门面向对象的语言,通过学习可以掌握用面向对象进行编程的思想和实践,使学生成为一名合格的Java程序员。
★ 第三讲 Java语言中的面向对象特性 ◇课前索引 ◇3.1 面向对象技术基础 ◇3.2 Java语言的面向对象特性 ◇本讲小结 ◇课后习题 ★ 第四讲 Java的例外处理和I/O流 ◇课前索引 ◇4.1 什么是例外 ◇4.2 例外...
01 简易公司人事管理 案例描述 案例分析 关联知识 案例实现 案例小结 案例拓展 面向对象程序设计与实践-Java抽象类和接口[33页]全文共33页,当前为第4页。 5-1案例描述 现有一软件公司,公司中有开发人员若干、项目...
本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)实验报告,基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java...
主要讲的ssi框架,MVC对于我们来说,已经不陌生了,它起源于20世纪80年代针对smalltalk语言的一种软件设计模式,...由于最近用了一次SSI框架,因此本文主要是对Strtus2、Spring、iBatis三个开源的MVC框架进行一个小结。
★ 第三讲 Java语言中的面向对象特性 ◇课前索引 ◇3.1 面向对象技术基础 ◇3.2 Java语言的面向对象特性 ◇本讲小结 ◇课后习题 ★ 第四讲 Java的例外处理和I/O流 ◇课前索引 ◇4.1 什么是例外 ◇4.2 例外...
本书为中南大学精品教材立项项目,分为上下两篇共21章,涵盖了面向对象技术中Java开发环境配置、程序设计基础、面向对象原理以及UML的知识。本书使用的开发环境是JDK 1.6+Eclipse 3.3+Rational Rose 2003,逐步引领...