- 浏览: 661502 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 519maven项目第一行报错:org.apache.maven.a ... -
删除项目中的所有.svn文件夹(或CVS文件夹)
2019-06-06 19:19 539当你的项目用SVN管理时,在项目的每个文件夹中会多一个.svn ... -
eclipse下生成Java类图和时序图,生成UML图
2016-12-30 02:28 2069最近老板让我做类图和时序图,提苦恼的,完全不会,就从网上整理 ... -
eclipse使用ModelGoon插件自动生成java类的UML图
2016-12-30 02:23 12491、ModelGoon介绍 ModelGo ... -
linux下的tomcat jvm内存
2016-11-30 23:19 597常见的内存溢出有以下两种: Java.lang.OutOf ... -
FTP实现客户端与服务器文件传输(二)
2016-08-06 01:22 1026/*以sun开头的class不是java里面的标准类,而是 ... -
java实现文件转换成二进制存储与取出
2016-08-06 01:21 2768一、功能描述: 将文件转成二进制数据放入数据库中,需要的 ... -
Resource specification not allowed here for source level below 1.7
2016-08-05 11:14 1193现象:tomcat能正常启动,但打开页面时,出现上面的错误 ... -
使用commons.net FTP 和sun.net.ftp.FtpClient 多种方式上传下载(包括批量)删除功能(一)
2016-08-04 10:38 690使用commons.net FTP 上传下载删除功能 ... -
第十一节 CAS服务端RememberMe
2016-06-07 11:03 1201关于启用RememberMe功能所需做的修改描述 ... -
第七节:CAS4.0.0 以上服务端配置多个数据源
2016-06-03 14:50 11431.首先打开deployerConfigContext.x ... -
第六节:CAS服务端自定义数据库认证用户
2016-06-03 11:46 2381/** * @see --------------- ... -
第四节:将CAS https的认证方式改为http
2016-06-01 08:49 1700一、CAS Server端的修改 1、找到cas\W ... -
java 读取html过滤标签
2016-05-27 16:19 1002public static void main(Strin ... -
获取cookie
2016-05-26 16:07 828获取cookie -
spring同时集成redis和mongodb时遇到多个资源文件加载的问题
2016-05-14 15:40 782两天平台中集成redis和mongodb遇到一个问题 单独 ... -
Windows上安装OpenSSL和生成证书
2016-05-10 15:52 24081,先下载OpenSSL http://www.slpr ... -
4.ubuntu14.04 安装mongodb笔记
2016-05-06 08:52 6781、使用系统自动获取安装。 1)获取更新 s ... -
3.nodejs nodejs的mysql模块
2016-04-12 22:20 594安装nodejs的mysql模块首先要选定一个数据库,我选择 ... -
第二节:cas处理中文乱码
2016-04-07 11:38 1344cas service配置参考第一节。 casServi ...
相关推荐
面向对象编程是 Java 的核心特性,它是一种设计和组织代码的方式,强调将数据和操作数据的方法封装在一起。本文将深入探讨 Java 中面向对象编程的主要概念和机制。 首先,面向对象的思维模式要求我们分析问题,识别...
Java面向对象编程是Java语言的核心特性,它基于三个主要原则:封装、继承和多态。在Java中,面向对象的设计允许我们模拟现实世界中的对象和它们之间的交互,从而提高代码的可读性、可维护性和复用性。下面是对Java...
### Java面向对象File I/O详解 #### 概述 在Java中,`File`类是进行文件和目录操作的基础。通过这个类,开发者能够轻松地处理文件系统中的各种任务,如创建、删除文件或目录,读取文件元数据等。本文将深入探讨如何...
以上内容只是Java面向对象编程的一小部分,马士兵教授的教程会更深入地探讨这些概念,并结合实例进行讲解,帮助开发者更好地理解和应用面向对象技术。通过学习和实践,你可以掌握创建高效、可维护的Java应用程序的...
这篇小结将深入探讨这两个关键概念,以及它们在实际编程中的应用。 首先,类是Java中的蓝图,它定义了一组特性和行为,这些特性和行为共同构成一个特定实体。类可以包含字段(或称为属性),它们代表对象的状态,...
根据给定文件的信息,我们可以提炼出以下几个重要的Java面向对象编程的知识点: ### 一、Java 面向对象编程概述 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它将程序中的数据和操作这些...
### Java的面向对象 #### 一、面向对象的基本概念 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它通过“对象”这一基本单元来组织代码,实现软件开发。Java作为一种典型的面向对象语言,其...
java语法个人学习的一个小总结,个人心得,分享日常学习的java
小结 Path的主要功能是设置JDK的可执行命令 classpath主要是在执行时候起作用,告诉JVM类的保存路径,一般设置成“.” 【注意】classpath只在java命令的时候起作用,而对于javac不起任何作用 2.简单JAVA程序 使用...
这篇博客“JavaScript 面向对象编程小结”可能涵盖了JavaScript中实现OOP的一些核心概念和技巧。 首先,面向对象编程的基础是类与对象。在JavaScript中,虽然没有像Java或C++那样的传统类机制,但是可以通过构造...
### Java个人学习小结 #### Java发展史及重要里程碑 - **起源与发展**: Java 的起源可以追溯到 1992 年,当时的 Sun Microsystems 公司开发了一种名为 Oak 的编程语言,最初是为了家用电器的智能化而设计的。然而...
JAVA是广泛使用的面向对象的编程语言,而JAVASE是指Java的标准版,包含了Java开发的核心库,是Java技术的基础。 14. 框架和工具:Hibernate、Ibatis、Struts2、Spring、SpringMVC、XML、JDBC、MVC、MyEclipse、...
### Java基础知识小结 #### 1.1 `getPath()`、`getAbsolutePath()`、`getCanonicalPath()`的区别 在Java中,处理文件路径时经常会用到`getPath()`、`getAbsolutePath()`以及`getCanonicalPath()`这三个方法。它们...
"浅谈结构化程序设计与面向对象程序设计" 本文档是对结构化程序设计和面向对象程序设计的比较和分析。结构化程序设计是将程序分解成单一处理功能的模块,通过参数传递调用相应模块以实现程序的功能。结构化程序设计...
虽然JavaScript并不完全遵循传统的面向对象模型,如Java或C++,但它提供了独特的面向对象特性,使其能够实现类似的功能。 首先,理解JavaScript中的对象至关重要。JavaScript对象是一个无序属性的集合,这些属性...
在Python编程语言中,面向对象程序设计是一种重要的编程范式,它基于“对象”的概念,将数据和操作数据的方法封装在一起。下面我们将深入探讨Python中的类定义、实例化、继承以及私有变量等关键概念。 1. 类定义: ...
Java课程是计算机科学中至关重要的一个部分,尤其在北京理工大学这样的知名学府,其面向对象编程课程备受关注。这个“java课程小结.rar_北京理工大学JAVA课程”压缩包中包含的“课程小结”文件,很可能是教授精心...
### Java语言程序设计:面向对象的编程技术 #### 编程语言的发展历程 计算机编程语言的发展经历了几个重要的阶段,从最初直接由计算机指令组成的机器语言,到更容易理解和记忆的汇编语言,再到高度抽象化的高级...
《Java基础小结》 Java,作为一种广泛应用的编程语言,以其跨平台、面向对象的特点深受开发者喜爱。这篇博文和随附的PDF笔记旨在总结Java的基础知识,帮助初学者巩固理解,同时也为有经验的开发者提供回顾参考。 1...