认识J2SE
1. J2SE的定义
J2SE:全称为Java 2 Standard Edition。Java 2平台包括:标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。
J2SE主要包括UI、集成库、语言和工具基础库、其他基础库、java虚拟机等组件。
2. 面向对象
2.1 类与对象的关系:
类是现实世界或者思维世界中的实体在计算机中的反映,它将数据以及这些数据的操作封装在一起。对象是具有类类型的变量。
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模版。
2.2 面向对象实例
package 面对对象实例; // 图书一般有书名name、作者author、编码ISBN
public class Book
{
private String name;
private String author;
private String ISBN; //利用构造方法初始化域
public Book(String name,String author,String ISBN)
{
this.name = name;
this.author = author;
this.ISBN = ISBN;
} public String getName() //获得书名
{
return name;
}
public String getAuthor() //获得作者
{
return author;
}
public String getISBN() //获得编码
{
return ISBN;
} }
package 面对对象实例; public class Test
{
public static void main(String[] args)
{
Book book = new Book("This is my book","Peter","123"); System.out.println("Book Name: "+book.getName());
} }
this的用法:
(1)this 关键字是类内部当中对自己的一个引用,可以方便类中方法访问自己的属性;
(2)可以返回对象的自己这个类的引用,同时还可以在一个构造函数当中调用另一个构造函数。
3. 动态化实例类
在面向对象的编程中,把用类创建对象的过程称为实例化。通常是使用有参数或无参数的构造方法来创建对象。其格式如下:
//有参数的情形
类名 对象名 = new 类名(参数1,参数2...参数n); //例如下面这个例子
Person peter = new Person("Peter","boy"); //无参数的情形
类名 对象名 = new 类名(); //例如下面这个例子
Dog dog_1 = new Dog();
在java中,类的实例化方法:
1. 使用new操作符
2. 调用Class对象的newInstance()方法
3. 调用clone()方法,对现有实例的拷贝
4. 通过ObjectInputStream的readObject()方法反序列化类
我们在自定义图书类这个例子中,编写了有参数的构造方法
public Book(String name, String author, String ISBN)
但如果类中没有定义构造方法,编译器便会自动添加一个无参数的构造方法。使用构造方法创建对象虽然常用,但并不灵活。因此,我们再来了解一下动态化实例类,也就是调用Class对象的newInstance()方法,通过反射创建对象。
反射 && 反射机制
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取信息以及动态调用对象的方法的功能称为java语言的反射机制。
如何创建动态化实例类
import java.io.File;
import java.lang.reflect.Constructor;
//需要引用上述两个包 public class Test { public static void main(String[] args) {
try { Constructor<File> constructor = File.class.getDeclaredConstructor(String.class);
//获得File类的Constructor对象 System.out.println("Create File Object with reflection.");
//使用反射创建File对象
File file = constructor.newInstance("C:/Users/Administrator/Desktop/11/MyFile.txt");
System.out.println("Use File Object to create MyFile.txt on desktop.");
//指定了创建的路径为桌面,名称为“MyFile.txt”,这里路径可以自己设置 file.createNewFile(); //创建新的文件
System.out.println("File is created ?" + file.exists());
//验证文件是否创建成功 } catch (Exception e) {
e.printStackTrace();
}
}
}
认识J2SE的更多相关文章
- J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM区别
转自:http://www.metsky.com/archives/547.html 一.J2EE.J2SE.J2ME区别 J2EE——全称Java 2 Enterprise Edition,是Jav ...
- J2EE、J2SE、J2ME是什么意思?
本文介绍Java的三大块:J2EE.J2SE和J2ME.J2SE就是Java2的标准版,主要用于桌面应用软件的编程:J2ME主要应用于嵌入是系统开发,如手机和PDA的编程:J2EE是Java2的企业版 ...
- Atitit J2EE平台相关规范--39个 3.J2SE平台相关规范--42个
Atitit J2EE平台相关规范--39个 3.J2SE平台相关规范--42个 2.J2EE平台相关规范--39个5 XML Parsing Specification16 J2EE Conne ...
- Java2_J2EE、J2SE和J2ME的区别
解析J2EE.J2SE.J2ME.JDK的区别 本文向大家简单介绍一下JDK.J2EE.J2SE.J2ME概念及区别,J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务 ...
- Java2_java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
什么是SDK呢? Software Develop Kit的简称,顾名思义就是软件开发包.软件开发商实现底层模块,并对其进行类库封装,配置成高级别的开发环境,为程序员上层的程序开发提供支持.譬如Goo ...
- Eclipse管理Java工程(j2se/j2ee/maven)
Eclipse管理J2SE/J2EE(Maven)项目 eclipse是一个集成开发工具,有编译,运行,打包部署等功能.eclipse可以新建多种项目,不同的项目有不同的IDE层次结构,方便用户管理资 ...
- 《J2EE,J2SE,J2ME》
J2EE(Java EE)是做企业级应用的.比如,163邮箱,比如某公司的管理系统 J2SE(Java SE)就是Java语言的标准版本,类似于C++,主要做桌面软件,比如Eclipse,MyEcli ...
- J2SE J2EE J2ME的区别
J2SE J2EE J2ME的区别 J2SE J2EE J2ME的区别多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(package)的形式提供,不同版本的Java提供不 ...
- j2se jndi
http://blog.csdn.net/lldwolf/article/details/2299622 正如你可以看到,从JNDI中检索对象是相当方便,简单.通过使用JNDI来存储配置信息,无状态对 ...
- J2EE、J2SE、J2ME
http://developer.51cto.com/art/200906/130453.htm 本文介绍Java的三大块:J2EE.J2SE和J2ME.J2SE就是Java2的标准版,主要用于桌面应 ...
随机推荐
- Windows|Windows Server 2003单网卡搭建VPN
1.[开始]--->[程序]--->[管理工具]--->[路由和远程访问].如下图所示: 2.选中"本地"右键"配置并启用路由和远程访问".如 ...
- c++ 继承类强制转换时的虚函数表工作原理
本文通过简单例子说明子类之间发生强制转换时虚函数如何调用,旨在对c++继承中的虚函数表的作用机制有更深入的理解. #include<iostream> using namespace st ...
- 理解redis高可用方案
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- 今天遇到的面试题for(j=0,i=0;j<6,i<10;j++,i++) { k=i+j; } k 值最后是多少?
for(j=0,i=0;j<6,i<10;j++,i++) { k=i+j; } k 值最后是多少? <script type="text/javascript" ...
- Ionic 2 中创建一个照片倾斜浏览组件
内容简介 今天介绍一个新的UI元素,就是当我们改变设备的方向时,我们可以看到照片的不同部分,有一种身临其境的感觉,类似于360全景视图在移动设备上的应用. 倾斜照片浏览 Ionic 2 实例开发 新增 ...
- iOS开发tips-UIScrollView的Autlayout布局
UIScrollViewj尽管继承于UIView,但它是一个相对比较特殊的视图,特别是当它遇到了AutoLayout之后.在UIScrollView中使用AutoLayout的目的除了使用相对约束确定 ...
- OpenCv 2.4.9 (二) 核心函数
前言 经过前面一节的怎样读取图片,我们可以做一些有趣的图像变换,下面我们首先介绍使用遍历的方法实现,然后我们使用内置的函数实现. 矩阵掩码实现 矩阵掩码,和卷积神经网络中的卷积类似.一个例子如下: 现 ...
- 【2017年新篇章】 .NET 面试题汇总(二)
本次给大家介绍的是我收集以及自己个人保存一些.NET面试题第二篇 第一篇文章请到这里:[2017年新篇章] .NET 面试题汇总(一) 简介 此次包含的不止是.NET知识,也包含少许前端知识以及.ne ...
- 【转】简单的java缓存实现
本文转自 http://my.oschina.net/u/866190/blog/188712 提到缓存,不得不提就是缓存算法(淘汰算法),常见算法有LRU.LFU和FIFO等算法,每种算法各有各的优 ...
- 第23篇 js快速学习知识
前面说了js的一些高级方面的基础知识,这些都是比较容易出错的和比较难理解的东西,除了这些之外其它的知识都比较简单了,基础学好了,扩展起来就是小意思.今天说说js方面可以快速学习和入门的知识. 1.闭包 ...