1.现实生活中万物皆是对象,每个对象都会有自己的特征,行为或作用或功能等。
而 Java 是面向对象的编程语言,用对象的形式来模拟现实世界;
在 Java 世界对象中,属性通常用来描述对象的特征、特点,而方法用来体现对象的行为、作用或功能等。
对象的特征分为静态特征和动态特征两种
静态的特征指对象的外观、性质、属性等
动态的特征指对象具有的功能、行为等
人们将对象的静态特征抽象为属性,用数据来描述,在 Java 语言中称之为变量;----成员变量
人们将对象的动态特征抽象为行为,用一组代码来表示,完成对数据的操作,在 Java 语言中称之为方法.----成员方法
类:将具有相同属性及相同行为的一组对象称为类
对象:用来描述客观事物的一个实体,由一组属性和方法构成。
2.对象同时具有属性和方法两项特性
对象的属性和方法通常被封装在一起,共同体现事物的特性, 二者相辅相承,不能分割 .
3.类是从对象中抽象出来,反过来类又是对象的"模版",定义对象将会拥有的特征(属性)和行为(方法)
类是对象的类型,不同于 int 类型:具有方法.
类, 可以理解为现实世界中的物种,是抽象的概念,仅仅是模板,例如:人类
对象,可以理解为物种的一个实体、个体、个例、实例等;是一个你能够看得到、摸得着的具体实体,例如:张三。
张三是一个人,是对象,他的类型是人类不是狗类马类,他是人类中的一个个体、个例、实体、实例。
类是对象的类型,对象是类的实例。
如何理解 Java 中的构造函数?
在现实生活中,我们如何创建一个房子对象?是不是要有工人的劳作和房子的设计图纸,根据图纸我们就知道我们的这个房子建成后应该是什么样子的;
在 Java 中,这个构造函数就非常类似生活中的房子设计图纸,new 关键字就好比工人在劳作;
在生活中,工人劳作加上房子的设计图纸可以造出一个房子对象,在 Java 中,我们使用 new 关键字加上构造函数就可以创造出一个对象!
在 Java 中,我们使用 class 关键字来定义一个类,其实就是在详细的制作这个设计图纸,模板;
如何理解 Java 中的有参构造函数和无参构造函数?
A.生活中我们创建一个房子对象,创建完成后可能是一个毛坯房,里面没有家电等设备(这可以理解为 java 中的无参构造函数),等到装修的时候再一个个买(可以理解为创建后手动初始化);
B.生活中有时候我们造一个房子对象,要求完工后就可以提包入住,里面各种家电齐全,不用自己后来再去买的,这个就可以理解为我们的有参构造函数,这些参数就好比家电!
4.所有 Java 程序都以类 class 为组织单元,关键字 class 定义自定义的数据类型。
类的结构组成:属性、方法、构造方法(不写则默认存在);
定义一个 class,文件内的类名,要有一个是 Public 的,同时和文件名是一样的。
5.Java 类模版:
public class 类名 {
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
…
属性n的类型 属性n;
//定义方法部分
方法1;
方法2;
…
方法m;
}
6.定义一个类的步骤:定义类名----编写类的属性----编写类的方法
7.使用对象的步骤:
定义一个类 //使用 class 关键字
定义类名----
编写类的属性----
编写类的方法
创建对象 //使用 new 关键字
类名 对象名 = new 类名(); 或
类名 对象名 = new 类名(参数列表);
例如:School center = new School();
引用对象成员: //使用“.”进行以下操作
引用属性:对象名.属性
引用方法:对象名.方法名()
这里的点可以理解为【的】。例如:
System.out.println(center.name); //调用 center 的 name 属性值
center.showCenter(); //调用 showCenter()方法
center.name = "北京中心"; //给 name 属性赋值
8.面向对象的优点:
A.与人类的思维习惯一致;
B.信息隐藏提高程序的可维护性和安全性;
C.提高程序可重用性。
9.如何定义类的方法:
A.定义类的方法名称; //最好见名知意
B.确定方法返回值的数据类型;
C.确定方法执行需要的形参及数据类型;
D.定义方法实现的主体,即方法的大括号内的内容。
例如:
public 返回值类型 方法名() {
//这里编写方法的主体
}
10.方法的返回值:
return 表达式; //作用: 跳出(终止)方法、返回结果
两种情况
如果方法具有返回值,方法中必须使用关键字 return 返回该值,返回值类型为该返回值的类型
如果方法没有返回值,返回值类型为 void
11.方法的调用:
方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果
方法调用:执行方法中包含的语句。
调用的形式:对象名.方法名();
方法之间允许相互调用,不需要知道方法的具体实现,实现重用,提高效率。
方法调用,使用如下两种形式:
同一个类中的方法,直接使用“方法名()”调用
不同类的方法,首先创建对象,再使用“对象名.方法名()”来调用
12.关于方法的常见错误:
A.方法的返回值类型为 void,方法中不能有 return 返回值!
B.方法不能返回多个值。python 语言是可以的,Java 若真想如此,可以考虑使用集合作为返回类型。
C.多个方法不能相互嵌套定义!即不能方法中定义方法!
D.不能在方法外部直接写程序逻辑代码!
13.成员变量和局部变量:
变量声明的位置决定了变量的类型,也决定变量作用域
变量作用域确定可在程序中按变量名访问该变量的区域
定义在类中的类属性,是成员变量;定义在方法中的变量是局部变量;
两者区别:
作用域不同
局部变量的作用域仅限于定义它的方法
成员变量的作用域在整个类内部都是可见的
初始值不同
Java 会给成员变量一个初始值
Java 不会给局部变量赋予初始值
注意:
A.在同一个方法中,不允许有同名局部变量,在不同的方法中,可以有同名局部变量;
B.在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级,覆盖成员变量!
14.定义带参数的方法
调用带参数的方法
对象名.方法名(参数 1, 参数 2,……,参数 n);
实参的类型、数量、顺序都要与形参一一对应
调用方法常见的错误:
调用方法时不能指定实参类型!
形参和实参数据类型不一致!
形参和实参数量不一致!
调用方法后没有对返回值作任何处理!
15.方法形参也可以是引用类型,比如数组,参数对象
可以将多个相关的信息封装成对象,作为参数传递,避免方法有太多的参数!
16.包,可以简单理解为文件夹,但是和文件夹又有一点不同。
为了便于管理大型软件系统中数目众多的类,解决类的命名冲突的问题,Java 引入了包机制。它即是一种命名机制,又是一种安全机制。
包可以包含类和子包。
包的作用:
允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件--分类。
防止命名冲突
更好的保护类、属性和方法(访问权限的包范围)
如何创建包:使用 package 关键字
在 Java 的源文件中,第一行代码:package 包名;
例如:package com.ddb.javacore.branch;
package 语句中,用‘.’来指明包(目录)的层次;
包命名规范:
包名由小写字母组成,不能以圆点开头或结尾;
包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名
包名后续部分依不同机构内部的规范不同而不同。
为了使用不在同一包中的类,需要在 Java 程序中使用 import 关键字导入这个类
import 语句告诉编译器到哪里去寻找类。导入包语法:
import 包名. 类名;
例如:
import java.util.*; //导入 java.util 包中所有类,星号是通配符
import java.util.Scanner; //导入指定包中指定类
可以不使用 import 语句导入需要使用的类,而是在需要使用类名的时候使用完整的包名.类名来引用该类!
Eclispe 中,导入包,可以使用组织导入:Ctrl+Shift+o
17.静态导入:import static 可以减少击键次数,省略写类名;
例如:
import static java.lang.System.out; //静态导入 System.out
out.println(person); //使用时,不必再写 System.了!!
18.JDK 中常见的包
SUN公司在JDK中为程序开发者提供了各种实用类,下面简要介绍其中最常用的几个包
⑴ java.lang ——包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。在java.lang包中还有一个子包:java.lang.reflect用于实现java类的反射机制。
⑵ java.awt —— 包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。
⑶ javax.swing——此包用于建立图形用户界面,此包中的组件相对于 java.awt 包而言是轻量级组件。
⑷ java.applet——包含applet运行所需的一些类。
⑸ java.net——包含执行与网络相关的操作的类。
⑹ java.io —— 包含能提供多种输入/输出功能的类。
⑺ java.util——包含一些实用工具类,如定义系统特性、与日期日历相关的方法。
19.打包工具——jar 命令的使用:
方式一:使用 jar 命令
只要在命令行中用以下命令就可以将一个包打成一个jar文件
jar –cvf create.jar demo
-c:创建新的存档
-v:生成详细输出到标准输出上
-f:指定存档文件名
create.jar:是生成jar文件的名称
demo:要打成jar文件的包
方式二:使用 Eclispe
File—Export—java—jar file—选择目标文件
参考链接:
Java 包的静态导入 import static 和 import 的区别 http://m.2cto.com/kf/201311/259442.html
其他知识:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于