本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(2)

对象、类

发布于2021-03-10 18:14     阅读(1123)     评论(0)     点赞(8)     收藏(1)


 


一、面向对象概述

  • 面向对象
    • 是一种编程思想,是发展到一定阶段后产生的
    • 我们有程序的编写者、执行者转换为调用者、指挥者
  • 面向过程
    • 编程思想
    • 注重自己实现的过程
    • 一组具有相同或者相似属性、行为事务的统称
    • 是对象的抽象
  • 对象
    • 现实世界中具体存在的实物
    • 是类的具体描述

二、类的创建

  • 创建一个类需要关注的点
    • 类名
      • 这个类的名字
    • 属性
      • 这一群对象共有的一些特征
      • 可以使用名词提炼法
    • 方法
      • 一群对象所共有的行为
      • 编写成方法
      • 目前不用加static
package com.qf.cls;

/**
 * 创建Dog类
 * 	抽取狗子的特征,定义为属性
 * 	抽取狗子的行为,定义为方法
 * @author Dushine2008
 *
 */
public class Dog {
	// 属性--品种-哈士奇、年龄-3、名字-道哥、颜色-黑白
	String breed;
	int age;
	String name;
	String color;
	
	// 方法
	public void eat(String food) {
		System.out.println("狗子喜欢吃:" + food);
	}
	
	public void sleep(int hour) {
		System.out.println("我们家的狗子每天睡觉时长是" + hour);
	}
	
}

三、对象的创建

  • 类是对象的模板,可以使用类创建出无数个具体的对象
  • 类名 对象名 = new 类名(参数列表);
package com.qf.cls;

public class DogTest {
	public static void main(String[] args) {
		Dog dog = new Dog();
		// 调用方法
		dog.eat("骨头");
		dog.sleep(8);
		
		// 调用属性,属性如果没有提前赋值,得到的是默认值
		int age = dog.age;
		System.out.println(age);
		
		// 给dog的属性赋值
		dog.breed = "哈士奇";
		dog.name = "二哈";
		dog.age = 3;
		dog.color = "黑白";
		
		// 调用dog的属性
		System.out.println("狗子的品种是:" + dog.breed);
		System.out.println("狗子的名字是:" + dog.name);
		System.out.println("狗子的年龄是:" + dog.age);
		System.out.println("狗子的颜色是:" + dog.color);
	}
}

四、创建多个对象

  • 一个类是多个对象的模板
  • 一个类可以创建很多个对象
package com.qf.cls;

public class CarTest {
	public static void main(String[] args) {
		// 创建对象
		Car car = new Car();
		
		// 给对象的属性赋值
		car.brand = "比亚迪*唐";
		
		// 调用对象的方法
		car.start("摇把");
		car.run(200);
		
		Car jili = new Car();
		jili.brand = "cheey";
		jili.maxSpeed = 220;
		
		jili.start("一键启动");
		jili.run(120);
		
	}
}

/**
 * Car类
 * @author Dushine2008
 *
 */
class Car{
	// 属性
	String brand;
	String color;
	int price;
	int maxSpeed;
	
	
	// 方法
	public void start(String func) {
		System.out.println(brand + "的车子启动的方式是:" + func);
	}
	
	public void run(int speed) {
		System.out.println("车子目前的速度是:" + speed);
	}
}

创建单个对象的过程

创建多个对象的过程

五、局部变量和实例变量

类型 局部变量 实例变量
定义位置 方法内部 类中方法外
存储位置 栈内存 堆内存
默认值 无,必须先赋值在使用 有默认值,和数据类型有关
作用范围 整个方法 整个类
生命周期 创建到方法执行结束 随着对象创建而创建,对象消失而消失
命名冲突 方法中不能存在重名变量 可以和局部变量重名,局部变量优先级高

六、实例方法

  • 创建对象后可以使用对象调用的方法
  • 定在类中方法外
  • 每一个方法都是独立的,不能书写在其他方法中
  • 实例方法不能使用static修饰
    • 因为使用static修饰的方法成为类方法

6.1 案例

  • 实体类--Student
package com.qf.cls;

/**
 * 学生类
 * 	定义了学生的属性
 * 	定义了sayHi和show方法
 * @author Dushine2008
 *
 */
public class Student {
	// 属性  
	String name;
	int age;
	String gender;
	double score;
	
	/**
	 * 见面打招呼的方法
	 * @param word	打招呼的内容
	 */
	public void sayHi(String word) {
		System.out.println("我是一个好学生,我们见面都会说:" + word);
	}
	
	/**
	 * 展示自己信息的方法
	 */
	public void show() {
		System.out.println("我的名字是:" + name + ",我的今年" + age + ",我是" + gender + ",我这次考试的成绩是:" + score);
	}
}	

  • 测试类TestStudent
package com.qf.cls;

public class TestStudent {
	public static void main(String[] args) {
		// 创建学生对象stu01
		Student stu01 = new Student();
		stu01.name = "张飞";
		stu01.gender = "汉子";
		stu01.age = 16;
		stu01.score = 33;
		
		stu01.sayHi("我乃燕人张翼德");
		stu01.show();
		
		// 创建学生对象stu02
		Student stu02 = new Student();
		stu02.name = "关羽";
		stu02.gender = "壮士";
		stu02.age = 17;
		stu02.score = 88;
		
		stu02.sayHi("打死你个鳖孙!!!");
		stu02.show();
	}
}

七、方法的重载

  • 在同一个类中出现了名字相同的方法
    • 他们的参数列表不同
    • 和返回值、修饰符无关


所属网站分类: 技术文章 > 博客

作者:Hdhhd

链接:http://www.javaheidong.com/blog/article/112284/5db7c0449e1aa2f97e79/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

8 0
收藏该文
已收藏

评论内容:(最多支持255个字符)