博主:命运之光 专栏:Java零基础入门
理解面向对象三大主要特征; 掌握类与对象的区别与使用; 掌握类中构造方法以及构造方法重载的概念及使用; 掌握包的定义、包的作用等; 掌握方法的参数传递规则。
🍓🍓方法在很多地方被称为函数(在Java中英文单词是Method,而在其他语言中为function),方法是一段可以被重复调用的代码块,实现一个功能,一个动作或一种行为。 方法定义语法如下:
修饰符 返回值类型 方法名称( [ 参数类型 参数变量, ... ]) {
方法体(本方法要执行的若干操作) ;
[ return [返回值] ; ]
}
🍓🍓Java的每一个应用程序都必须包含一个main()方法,称为主方法。主方法是程序开始执行的位置,语法格式如下:
publlic static void main(String[ ] args){
//方法体
}
说明: 1、主方法是静态的(static),所以如要直接在主方法中调用其他方法,则该方法必须也是静态的; 2、主方法没有返回值; 3、主方法的形参为字符串数组。其中args[0]~args[n]分别代表程序的第一个参数到第n个参数。(可以通过args.length获取参数的个数)
定义:使用方法的过程称为方法的调用。 格式: 方法名([实参列表]);
🍓🍓例1:定义一个没有参数没有返回值的方法。
public class text1 {
public static void main(String args[]) {
printInfo(); // 直接调用方法
printInfo(); // 直接调用方法
}
public static void printInfo() { // 定义没有参数,没有返回值的方法
System.out.println("*********************");
System.out.println("* www.yootk.com *");
System.out.println("*********************");
}
}
形参:全称形式参数,是指方法定义中的参数; 实参:全称实际参数,方法调用中的参数;
🍓🍓例2:定义一个有参数无返回值的方法。
public class text1 {
public static void main(String args[]) {
pay(10.0); // 调用方法
pay(-10.0); // 调用方法
}
//定义一个支付的操作方法,如果支付金额大于0则正常支付,否则会输出错误提示信息
public static void pay(double money) { // 购买支付操作
if (money > 0.0) { // 现在已经给钱
System.out.println("可以进行支付!");
} else { // 不能够支付
System.out.println("没钱还买东西!");
}
}
}
🍓🍓我们经常会根据一个方法产生的结果,去组织另外一段代码逻辑,为了获得该方法产生的结果,就需要方法能够将结果返回。 🍓🍓例3:定义一个有返回值有参数的方法(比较两个整数是否相等)。
public class text1 {
public static void main(String args[])
{
boolean is;
is = compare(40,40);
System.out.println("比较的结果是:"+is);
}
public static boolean compare(int x,int y){
return x==y;
}
}
通过赋值语句来保存调用方法后得到的返回值,并且,变量类型要和返回值类型一致
return后的数据类型需和方法返回值的类型匹配
在同一个类中的多个方法,它们的方法名相同,参数列表不同,这样的情况,称为方法重载。方法重载与修饰符和返回值类型无关。
参数列表不同:个数不同、类型不同或顺序不同
调用方法的时候,Java虚拟机会通过参数的不同来区分同名的方法。
🍓🍓例:观察方法重载。
public class text1 {
public static void main(String args[]) {
// 方法重载之后执行时会根据传入参数的类型或个数的不同调用不同的方法体
System.out.println("两个整型参数:" + add(10, 20));
System.out.println("三个整型参数:" + add(10, 20, 30));
System.out.println("两个浮点型参数:" + add(10.2, 20.3));
}
public static int add(int x, int y) { // add()方法一共被重载三次
return x + y;
}
public static int add(int x, int y, int z) { // 与之前的add()方法的参数个数不一样
return x + y + z;
}
public static double add(double x, double y) {// 与之前的add()方法的参数类型不一样
return x + y;
}
}
面向对象:Object Oriented Programming 面向过程:Procedure Oriented Programming
二者都是一种思想,面向对象是相对于面向过程而言的。 面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。 面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
面向对象和面向过程的区别: 主要在于做事方式的不同,一个关注事物(对象),另一个关注于过程(步骤)。
Java中如何描述一个事物? Java中通过“类”来描述事物,类主要由属性和行为构成。 类是一系列具有相同属性和行为的事物的统称。
我们在现实世界中看到的其实都是对象。
现实世界中,万事万物皆对象,对象是某一类事物的某个具体存在,如张三、小明的书桌、教室的计算机、王五的汽车等,所以对象表示的是一个个独立的个体。
通常都会将对象划分为两个部分,即动态部分与静态部分。 静态部分,顾名思义就是不能动的部分,这个部分被称为“属性”,任何对象都会具备其自身属性,如一个人,它包括高矮、胖瘦、性别、年龄等属性。 然而具有这些属性的人会执行哪些动作也是一个值得探讨的部分,这个人可以哭泣、微笑、说话、行走,这些是这个人具备的行为即动态部分。 通过探讨对象的属性和观察对象的行为了解对象。
面向对象程序设计的重点是类的设计 类的设计,其实就是类的成员的设计
类:用来描述特征信息及功能等,不能实际使用。 对象:根据类的描述创造出来的,可以实际使用。
定义类的过程,就是把一系列相关事物共同的属性和行为抽取出来的过程。
事物的属性,在类中叫成员变量; 事物的行为,在类中叫成员方法;
语法格式:
【修饰符】 class 类名称{
成员变量定义; //属性
成员方法定义; //行为
}
属性 = 成员变量 = field = 域、字段
语法格式:修饰符 数据类型 属性名 ; 或 修饰符 数据类型 属性名 = 初始化值 ;
说明1: 修饰符 常用的权限修饰符有:private、缺省、protected、public 说明2:数据类型 任何基本数据类型(如int、Boolean) 或 任何引用数据类型。 说明3:属性名 属于标识符,符合命名规则和规范即可。
成员方法 = 函数 = method 语法格式:
权限修饰符 返回值类型 方法名([参数类型 参数名1, 参数类型 参数名2……]){ //方法体语句 [ return 返回值;] }
成员方法的格式说明 : 除了权限修饰符不加Static以外,其他同一般方法。
🍓🍓举例:定义一个person类
class Person{//定义成员变量(属性)
String name; //姓名
int age; //年龄
boolean isMale; //性别
public void sleep(){
System.out.println(“人能睡觉”);
}
public void walk(){//定义成员方法(行为)
System.out.println(“人能走路……”);
}
}
🍓🍓举例:定义一个Book类
class Book { // 定义一个Book类
String title; // 书的名字
double price; // 书的价格
//输出对象完整信息
public void getInfo() { // 此方法将由对象调用
System.out.println("图书名称:" + title + ",价格:" + price);
}
}
🍓🍓案例: 使用类 —— 在主类中使用Book类。
class Book { // 定义一个新的类
String title; // 书的名字
double price; // 书的价格
public String getInfo() { // 此方法将由对象调用
return "图书名称:" + title + ",价格:" + price);
}
}
public class text1 {
public static void main(String args[]) {
Book bk = new Book() ; // 声明并实例化对象
bk.title = "Java开发" ; // 操作属性内容
bk.price = 89.9 ; // 操作属性内容
System.out.println (bk.getInfo()) ; // 调用类中的getInfo()方法
}
}