七:面向对象-->认识类与对象

目录

7.1、面向对象的基本概念

7.2、类和对象

7.2.1、定义类

7.2.2、类和对象的概念

7.2.3、类和对象的创建和使用

7.2.2.1、声明属性:

7.2.2.2、声明方法:

7.2.2.3 、创建对象

 7.2.2.4、调用属性

7.2.2.5、 调用方法

 7.2.2.6、案例代码:

7.3、案例 

7.3.1:

7.3.2:

7.3.3:方法分类:

7.3.4:调用冒泡排序


课程目标:

写完本次课程后,你能够:

  •         掌握类和创建对象的关系
  •         定义类
  •         定义对象
  •         定义和调用方法

7.1、面向对象的基本概念

        java语言是一种面向对象的语言。

面向对象的三大特征:

  •         封装
  •         继承
  •         多态

7.2、类和对象

7.2.1、定义类

       (1) 定义类:

语构:

        [访问权限修饰符]class 类名{

                //操作代码

        }

        示例

        public class Dog{

               //操作代码

        }

  • 访问权限修饰符如public、private等都是可选的
  • class是声明类的关键字
  • 按照命名规范,类名首字符大写

7.2.2、类和对象的概念

对象:客观存在的一个实体(你能够看得见摸的着的物体都乐意看成是对象),具有属性和方法

  • 属性:描述的是对象的特征
  • 方法:描述的是对象的功能

类:具有相同属性和方法的一组对象的集合

  • 类对对象的抽象
  • 对象是类的具体

7.2.3、类和对象的创建和使用

7.2.2.1、声明属性:

        访问权限修饰符 数据类型 属性名;          或:

        访问权限修饰符 数据类型 属性名=数据

                例如:public String tybe ="1";

        注:属性的访问权限修饰符可以是public、protected、private、默认(什么都不写)

       

        示例:

        public class Dog{      //定义“狗”类

                //声明属性

                public String type;    //种类

                public int age;           //年龄

                public String color;    //颜色

                //声明方法

                public void bark(){

                        system.out.println("汪汪汪...............");

                }

        }
       

7.2.2.2、声明方法:

         访问权限修饰符 返回值类型 方法名(数据类型 变量名1,数据类型 变量名2,....,数据类型 变量名n){
              //描述方法实现功能的代码
              }

 /*
     * 方法的定义语法:
     *     访问权限修饰符 返回值类型 方法名(数据类型 变量名1,数据类型 变量名2,....,数据类型 变量名n){
     *         //描述方法实现功能的代码
     *     }

     *
     *         访问权限修饰符:
     *             public(公共的)
     *             protected(受保护的)
     *             private(私有的)
     *                      :默认值
     *         返回值类型:
     *             方法可以返回给你的结果类型,可以是8大基本数据类型,也可以是引用数据类型
     *             如果方法没有返回值,那么些void(空)
     *         ()里的称之为参数列表,参数可以没有,也可以有一个或者多个,多个之间使用,隔开;参数的数据类型可以是基本数据类型,也可以是引用数据类型
     *         {}里的是方法实现功能的具体代码        
     * 
     */

        例如:public int sum(int num1,num2)

       

        示例

        public class Dog{      //定义“狗”类

                //声明属性

                public String type;    //种类

                public int age;           //年龄

                public String color;    //颜色

                //声明方法

                public void bark(){

                        system.out.println("汪汪汪...............");

                }

        }

7.2.2.3 、创建对象

        类名 对象名 = new 类名();

        Dog   dog1  = new Dog();      //创建对象

  • new是关键字
  • 左边的类名为对象的数据类型
  • 右边的类名()称为类的构造方法

        示例:

        Dog   dog1  = new Dog();      //创建对象

 7.2.2.4、调用属性

        对象名.属性名;   或者

        对象名.属性名 = 数据;

        示例:

public static void main(String[] args) {
        // 创建Dog类对象
        //创建对象的语法:  类名 对象名 = new 类名();
        Dog  dog1 = new Dog();


        //如何调用对象的属性和方法?
        //
调用属性: 对象名.属性名;  或者  对象名.属性名 = 数据;
        dog1.type = "哈士奇";
        dog1.age = 2;
        dog1.color = "黑白";
        System.out.println("对象dog1的品种:"+dog1.type);
        System.out.println("对象dog1的年龄:"+dog1.age+"岁");
        System.out.println("对象dog1的颜色:"+dog1.color);
        
        //调用方法:对象名.方法名()
        dog1.bark();

    }

7.2.2.5、 调用方法

        对象名.方法名();

        dog1.bark();

        示例:

public static void main(String[] args) {
        // 创建Dog类对象
        //创建对象的语法:  类名 对象名 = new 类名();
        Dog  dog1 = new Dog();


        //如何调用对象的属性和方法?
        //调用属性: 对象名.属性名;  或者  对象名.属性名 = 数据;
        dog1.type = "哈士奇";
        dog1.age = 2;
        dog1.color = "黑白";
        System.out.println("对象dog1的品种:"+dog1.type);
        System.out.println("对象dog1的年龄:"+dog1.age+"岁");
        System.out.println("对象dog1的颜色:"+dog1.color);
        
        //调用方法:对象名.方法名()
        dog1.bark();

    }

 7.2.2.6、案例代码:

        (1)设计类:设计类中包含了以下:

                声明属性、声明方法

//设计类

package com.bdqn.demo01;
//定义了一个类Dog类
public class Dog {
	/*
	 * 对象:客观存在的一个实体(你能够看得见摸得着的物体都可以看成是对象),具有属性和方法
	 * 	属性:描述的是对象的特征
	 * 	方法:描述的是对象的功能
	 * 类:具有相同属性和方法的多个对象的集合
	 * 	类对对象的抽象
	 * 	对象是类的具体
	 */
	
	//声明属性:  访问权限修饰符 数据类型 属性名;   或 访问权限修饰符  数据类型 属性名  = 数据;
	//属性的访问权限修饰符可以是public protected private 默认(什么都不写)
	String type;
	int age;
	String color;
	
	//声明方法
	/*
	 * 方法的定义语法:
	 * 	访问权限修饰符 返回值类型 方法名(数据类型 变量名1,数据类型 变量名2,....,数据类型 变量名n){
	 * 		//描述方法实现功能的代码
	 * 	}
	 * 		访问权限修饰符:
	 * 			public(公共的)
	 * 			protected(受保护的)
	 * 			private(私有的)
	 * 			     	:默认值
	 * 		返回值类型:
	 * 			方法可以返回给你的结果类型,可以是8大基本数据类型,也可以是引用数据类型
	 * 			如果方法没有返回值,那么些void(空)
	 * 		()里的称之为参数列表,参数可以没有,也可以有一个或者多个,多个之间使用,隔开;参数的数据类型可以是基本数据类型,也可以是引用数据类型
	 * 		{}里的是方法实现功能的具体代码		
	 * 
	 */
	public	void bark(){
		System.out.println("汪汪汪......");
	}
	
}

        (2)测试类:

  •                 创建对象
  •                 调用属性
  •                 调用方法
//测试类

package com.bdqn.demo01;

public class DogTest {

	public static void main(String[] args) {
		// 创建Dog类对象
		//创建对象的语法:  类名 对象名 = new 类名();
		Dog  dog1 = new Dog();
		//如何调用对象的属性和方法?
		//调用属性: 对象名.属性名;  或者  对象名.属性名 = 数据;
		dog1.type = "哈士奇";
		dog1.age = 2;
		dog1.color = "黑白";
		System.out.println("对象dog1的品种:"+dog1.type);
		System.out.println("对象dog1的年龄:"+dog1.age+"岁");
		System.out.println("对象dog1的颜色:"+dog1.color);
		
		//调用方法:对象名.方法名()
		dog1.bark();

	}
}

7.3、案例 

7.3.1:

//设计类

package com.bdqn.demo01;

public class Student {
	//定义属性
	// 访问权限修饰符 数据类型 属性名;
	public String name;
	public int age;
	public String classNo;
	public String hobby;
	
	//定义方法
	public String study(){
		return "好好学习,天天向上";
		
	}
}
//测试类

package com.bdqn.demo01;

public class StudentTest {

	public static void main(String[] args) {
		// 创建Student对象
		// 类名  对象名 = new 类名();
		Student zhangsan = new Student();
		
		//给对象属性赋值  对象名.属性名 = 属性值;
		zhangsan.name = "张三";
		zhangsan.age = 22;
		zhangsan.classNo = "java2216班";
		zhangsan.hobby = "篮球";		
		System.out.println(zhangsan.name+"-"+zhangsan.age+"-"+zhangsan.classNo+"-"+zhangsan.hobby);
		
		//调用方法 对象名.方法名()
		String result =zhangsan.study();
		System.out.println(result);
		
		/*
		 * 方法的调用规则:
		 * (1)在调用方法的时候,方法有返回值给你,返回给你什么类型的结果,你就要使用对应类型的变量(盒子)去接收这个返回的结果
		 * (2)在调用有参方法的时候,方法需要什么参数,你就需要传递什么参数,要遵循方法参数列表的定义顺序来传递参数
		 * 		Scanner input  = new Scanner(System.in);
		 * 		int num =input.nextInt();
		 * 		double num =input.nextDouble();
		 * 		String str =input.next();
		 */
		
		
	}

}

7.3.2:

//设计类

package com.bdqn.demo01;

public class Teacher {
	//定义属性
	public String name;//姓名
	public String major;//专业方向
	public String course;//教授课程
	public int teachingAge;//教龄
	
	//定义方法
	public String study(){
		return "教书育人";
		
	}

}
//测试类

package com.bdqn.demo01;

public class TeacherText {

	public static void main(String[] args) {
		//创建Teacher对象
		Teacher wanglaoshi  = new Teacher();
		
		//给对象属性赋值
		wanglaoshi.name="王老师";
		wanglaoshi.major="计算机";
		wanglaoshi.course="使用Java语言理解程序逻辑";
		wanglaoshi.teachingAge=5;
		
		System.out.println("姓名:"+wanglaoshi.name+"-专业方向"+wanglaoshi.major+"-教授课程:"+wanglaoshi.course+"-教龄:"+wanglaoshi.teachingAge);
		
		//调用方法
		String a=wanglaoshi.study();
		System.out.println(a);

	}

}

7.3.3:方法分类:

  //方法分类:
    /*
     * 按照方法是否有返回值,可以将方法分为:
     *         有返回值的方法:有返回值的方法需要使用到return关键字将结果返回
     *         无返回值的方法:写void表示方法没有返回值
     * 按照方法是否有参数,可以将方法分为:
     *         有参数的方法。简称有参方法
     *         没有参数的方法。简称无参方法
     * 
     * 综上所述:
     *         没有返回值的无参方法
     *         没有返回值的有参方法
     *         有返回值的无参方法
     *         有返回值的有参方法
     * 
     * 
     */

//设计类

package com.bdqn.demo02;

public class Demo01 {
	//方法分类:
	/*
	 * 按照方法是否有返回值,可以将方法分为:
	 * 		有返回值的方法:有返回值的方法需要使用到return关键字将结果返回
	 * 		无返回值的方法:写void表示方法没有返回值
	 * 按照方法是否有参数,可以将方法分为:
	 * 		有参数的方法。简称有参方法
	 * 		没有参数的方法。简称无参方法
	 * 
	 * 综上所述:
	 * 		没有返回值的无参方法
	 * 		没有返回值的有参方法
	 * 		有返回值的无参方法
	 * 		有返回值的有参方法
	 * 
	 * 
	 */
	//有返回值的无参方法
	public int print(){
		return 100;
	}
	
	//无返回值的无参方法
	public void show(){
		System.out.println("我是一个没有返回值的方法");
	}
	
	//有返回值的有参方法
	//定义一个求两个整数相加的方法
	public int sum(int num1,int num2){
		return num1+num2;
	}
	
	
	//定义一个欢迎学员来到北大青鸟的方法
	public String welcome(String name){
		return "欢迎"+name+"来到北大青鸟";
	}
	
	
	
	
	

}
//设计类

package com.bdqn.demo02;

public class DemoText{

	public static void main(String[] args) {
		// 创建Demo01的对象
		Demo01 demo = new Demo01();
		
		//有返回值无参数的调用方法:
		//将print()方法的返回值赋值给变量result
		int  result =demo.print();
		System.out.println(result);
		
		//无返回值无参数的调用方法:
		//调用方法(无返回值方法的调用)
		demo.show();
		
		//有返回值有参数的调用方法:
		//将sum(20,100)方法的返回值赋值给变量result2
		int result2 =demo.sum(20, 100);
		System.out.println(result2);
		
		//有返回值有参数的调用方法
		//可在调用方法外部进行变量的赋值
		int a =100;
		int b = 200;
		int result3=demo.sum(a, b);
		System.out.println(result3);
		
		//有返回值有参数的调用方法
		//将welcome()方法的返回值赋值给变量result4
		String result4 =demo.welcome("尼古拉斯凯奇");
		System.out.println(result4);

	}

}

7.3.4:调用冒泡排序

(1)设计类:在此类中写好数组遍历和冒泡排序从而进行调用

//设计类

package com.bdqn.demo03;

public class ArrayMethod {
	//定义一个方法实现数组遍历
	public void printArray(int[] array){
		for(int i =0;i<array.length;i++){
			System.out.print(array[i]+" ");
		}
	}
	
	//定义一个方法实现数组排序(冒泡排序)
	public void sort(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;
				}
			}
		}
	}

}

(2)测试类:在此类中,调用方法实现

//测试类

package com.bdqn.demo03;

import java.util.Arrays;

public class ArrayMethodText {

	public static void main(String[] args) {
		// 创建对象,调用方法
		ArrayMethod am = new ArrayMethod();

		// 声明一个int类型的数组
		int[] nums = { 11, 78, 54, 29, 80, 44, 55 };

		// 遍历数组
		am.printArray(nums);
		System.out.println();
		
		// 排序
		am.sort(nums);

		// 遍历数组
		am.printArray(nums);
		
		int[] nums2 = {22,3,44,5,1,90,23};
		am.sort(nums2);
		System.out.println();
		// 遍历数组
		am.printArray(nums2);
	

	}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小猪VS恒哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值