初识对象,对象的创建以及方法的定义规则

什么是对象

对象:现实世界中客观存下的实体都是对象(只要你能看得见、摸得着的物体都是对象),由属性和方法组成。万事万物皆对象

什么是类

:具有相同属性和方法的多个对象的集合。

  • 类是对象的抽象,对象是类的具体
  • 类是对象的模板,对象是类的特例
package cn.bdqn.demo01;

public class Dog {
	
	//定义属性
	public String name;
	public int health;
	public int love;
	
	//定义方法
	public void print(){
		System.out.println("狗的昵称:"+name+",健康值:"+health+",亲密度:"+love);
	}

}

定义属性

数据类型 属性名;

package cn.bdqn.demo01;

public class School {
	
	//定义属性: 数据类型 属性名;
	String schoolName;
	String address;
	int year;
	String phoneNumber;
public void printInfo(){
		System.out.println("学校名称:"+schoolName+",地址:"+address+",创办年数:"+year+",联系电话:"+phoneNumber);
	}
	

}

定义方法

访问权限修饰符 返回值类型 方法名([参数列表]){
方法体
}

创建School类对象
类名 对象名 = new 类名();

package cn.bdqn.demo01;

public class SchoolTest {

	public static void main(String[] args) {
		
		//创建School类对象
		//类名 对象名 = new 类名();
		School school1 = new School();
		//给对象的属性赋值  对象名.属性名 = 数据;
		school1.schoolName = "魔法学院";
		school1.address = "安徽合肥";
		school1.year = 100;
		school1.phoneNumber = "13822556677";
		
		//对象调用方法  对象名.方法名();
		school1.printInfo();
		
		
		School school2 = new School();
		school2.schoolName = "北大青鸟";
		school2.address = "合肥创投产业园";
		school2.year = 30;
		school2.phoneNumber = "13288889999";
		school2.printInfo();
		System.out.println(school2.schoolName);
		
		

	}

}

访问权限修饰符:描述的是方法的作用范围,主要有public(公共)、默认的(什么都不写)、protected(受保护的)、private(私有的)
返回值类型:调用方法返回结果的类型,可以是8大基本类型,也可以是3大引用类型,还可以没有返回值,写void
方法名:方法的名称,小驼峰命名法,做到见名知意
参数列表:方法可以需要你传递参数,也可以不需要参数,当方法有参数的时候,可以有一个参数,也可以有多个参数,多个参数之间使用,隔开
方法体:方法实现功能的具体代码体现

package cn.bdqn.demo02;

public class Teacher {
	//定义属性
	String name;
	String professionalDirection;
	String teachingCourses;
	int teachingExperience;
	
	//定义方法
	public void print(){
		System.out.println(name);
		System.out.println("专业方向:"+professionalDirection);
		System.out.println("教授课程:"+teachingCourses);
		System.out.println("教龄:"+teachingExperience);
	}
}

package cn.bdqn.demo02;

public class TeacherTest {

	public static void main(String[] args) {
		//创建Teacher类对象
		Teacher teacher1 = new Teacher();
		teacher1.name = "王老师";
		teacher1.professionalDirection = "计算机";
		teacher1.teachingCourses = "使用Java语言理解程序逻辑";
		teacher1.teachingExperience = 5;
		
		//调用print()方法
		teacher1.print();
	}

}

方法的定义

根据方法是否有返回值,将方法定义为

  1. 无返回值的方法
    返回值类型写void,在调用无返回值的方法,不需要用任何变量来接收

  2. 有返回值的方法
    1)返回值可以是任意的基本数据类型和任意的引用数据类型,调用有返回值的方法,需要用对应类型的变量来接收,或者直接将返回值输出
    2)有返回值的方法需要在方法体内通过return关键字将结果返回回去

根据方法是有有参数列表,将方法定义为

  • 无参方法
    方法名后面的()中没有任何参数

  • 有参方法
    方法名后面的()中有参数,参数的个数可以是1个或者多个,参数的类型可以是基本数据类型,也可以是引用数据类型
    *
    综上所述,方法的种类主要有以下几种:

  • 无返回值的无参方法

  • 无返回值的有参方法

  • 有返回值的无参方法

  • 有返回值的有参方法

方法调用的2个原则:

  1. 方法需要什么参数,就按照定义的规则传递参数----》要什么给什么
  2. 方法返回什么类型的结果,就用什么类型的变量接收(也可以直接输出返回的结果)----》给什么接什么
package cn.bdqn.demo03;

public class Demo01 {
public void test1(){
		System.out.println("我是没有返回值的方法");
	}
	
	public String test2(){
		String str = "hello java";
		return str;
	}

//num1和num2是定义方法时表示的参数名称,是一个形式参数,简称形参
	public void test3(int num1,int num2){
		System.out.println("你传递的两个参数数据是:"+num1+","+num2);
	}
	
	
	public int test4(int num1,int num2,int num3){
		return num1+num2+num3;
	}
}
package cn.bdqn.demo03;

public class Demo01Test {

	public static void main(String[] args) {
		//创建Demo01的对象,通过对象来调用Demo01类中的test1()和test2()方法
		
		Demo01 d1 = new Demo01();
		d1.test1();
		String result =d1.test2();
		System.out.println(result);
		System.out.println(d1.test2());
		
		d1.test3(10, 20);
		
		int a =100;
		int b =200;
		//调用有参方法的时候,传递的a和b是实际参数,简称实参,形参和实参的名称不需要一样,但是数据类型要一样
		d1.test3(a, b);
		
		int result2 =d1.test4(100, 200, 185);
		System.out.println(result2);
		System.out.println(d1.test4(10, 20, 30));
		
	}

}

对数组进行升序排序,遍历输出,复制操作

package cn.bdqn.demo04;

public class ArraysMethod {

	// 定义一个方法实现对int类型的数组进行升序排序
	public static void sortUp(int[] array) {
		for (int i = 0; i < array.length - 1; i++) {
			for (int j = 0; j < array.length - 1 - i; j++) {
				if (array[j] > array[j + 1]) {
					int temp = array[j];
					array[j] = array[j + 1];
					array[j + 1] = temp;
				}
			}
		}
	}

	// 定义一个方法将数组输出
	public static void showArrays(int[] array) {
		for (int i = 0; i < array.length; i++) {
			if (i == 0) {
				System.out.print("[");
			}
			if (i != array.length - 1) {
				System.out.print(array[i] + ",");
			} else {
				System.out.print(array[i]);
			}

			if (i == array.length - 1) {
				System.out.println("]");
			}
		}
	}

	// 定义一个方法实现对数组进行复制操作
	public static int[] copyArray(int[] arr, int length) {
		int[] newArray = new int[length];
		// 要先判断length的值和arr.length值的大小
		if (length <= arr.length) {
			for (int i = 0; i < length; i++) {
				newArray[i] = arr[i];
			}
		} else {
			for (int i = 0; i < arr.length; i++) {
				newArray[i] = arr[i];
			}
		}

		return newArray;

	}


	/*定义一个方法实现对已经升序排序的数组中插入一个元素
	*public static int[] insertArray(int[] nums,int number){
	*	
	*	
	*	
	*	return nums;
	*	
	*}
	*/

}

package cn.bdqn.demo04;

public class Test {

	public static void main(String[] args) {
		
		int[] num1 = {11,56,98,76,46,33,19,85};
		
		//遍历前输出数组
		ArraysMethod.showArrays(num1);
		
		ArraysMethod.sortUp(num1);
		
		//遍历后输出数组
		ArraysMethod.showArrays(num1);
		
		int[] newNums =ArraysMethod.copyArray(num1, 18);
		ArraysMethod.showArrays(newNums);

	}

}

  • 方法在同一个类中,可以直接调用,不需要通过对象名调用
    实践:小于18岁大于60岁免20块门票。
package cn.bdqn.demo06;

public class Visitor {
		
	//定义一个方法,实现根据年龄输出门票价格
	public void price(String name,int age){
		if(age>=18&&age<=60){
			System.out.println(name+"的年龄为"+age+",门票价格:20元");
		}else{
			System.out.println(name+"的年龄为"+age+",门票免费");
		}
	}

}

package cn.bdqn.demo06;

import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		Visitor v = new Visitor();
		String name =null;
		
		System.out.println("输入姓名:");
		name =sc.next();
		while(!name.equals("n")){
			System.out.println("输入年龄:");
			int age =sc.nextInt();
			v.price(name, age);
			System.out.println("输入姓名:");
			name =sc.next();
		}
		
		System.out.println("退出程序");
	}

}

总结

1)访问权限修饰符 返回值类型 方法名([参数列表]){
方法体
}

2)创建School类对象:类名 对象名 = new 类名();

3)方法的种类主要有以下几种:无返回值的无参方法,无返回值的有参方法,有返回值的无参方法,有返回值的有参方法。

4)无返回值的方法
返回值类型写void,在调用无返回值的方法,不需要用任何变量来接收

5)有返回值的方法

  1. 返回值可以是任意的基本数据类型和任意的引用数据类型,调用有返回值的方法,需要用对应类型的变量来接收,或者直接将返回值输出
  2. 有返回值的方法需要在方法体内通过return关键字将结果返回回去

6)无参方法
方法名后面的()中没有任何参数

7)有参方法
方法名后面的()中有参数,参数的个数可以是1个或者多个,参数的类型可以是基本数据类型,也可以是引用数据类型

8)方法调用的2个原则:

  1. 方法需要什么参数,就按照定义的规则传递参数----》要什么给什么
  2. 方法返回什么类型的结果,就用什么类型的变量接收(也可以直接输出返回的结果)----》给什么接什么

课后作业

01:写一个人的类
属性:名字,性别,年龄
方法:(1)自我介绍的方法(2)吃饭的方法
创建一个对象“张三”

02:写一个汽车类:
属性:品牌;车长;颜色;价格;
方法:跑的方法
创建五个对象:“捷达”,“宝马”,“劳斯莱斯”,“科鲁兹”,“迈锐宝”

03:写一个课程类:
属性:课程名;学时;任课老师;
创建五个对象:“c语言”,“Java编程”,“php网络编程”,“c++”,“数据结构”

04: 0——————>X
|
|
| . P(X,Y)
|
|
Y
定义一个类,用于描述坐标点
(1) 具有计算当前点到原点距离的功能
(2) 求到任意一点(m,n)的距离
(3) 具有坐标点显示功能,显示格式(x,y)

05:定义一个圆类型
提供显示圆周长功能的方法
提供显示圆面积的方法

06:编程创建一个Box类,在其中定义三个变量表示一个立方体的长、宽和高,定义一个方法求立方体的体积。创建一个对象,求给定尺寸的立方体的体积。

07:定义一个计算机类:
属性:品牌;价格;颜色;
方法:(1)编程的功能 (2)上网的功能
实例化两个对象:“lenovo”;“hasee”

08:编写一个类Student,代表学员,要求:
(1)具有属性:学号、姓名、年龄、性别、专业。
(2)具有方法:自我介绍,负责输出该学员的姓名、年龄、性别以及专业。

09:Java对内存的划分分为几类?
划分一:运行时数据区域; 程序计数器; Java虚拟机栈; 本地方法栈; 堆; 方法区;运行时常量池; 对象访问。
划分二:栈区、堆区、静态区、代码区。

10:堆和栈的区别?
堆:存放的是引用数据类型;
栈: 存放的是基本数据类型;容量小、速度快、适合存放小型数据。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道长爱睡懒觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值