Java面向对象学习笔记-----类与对象

夏果果 1月前 ⋅ 82 阅读

面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲力亲为,详细处理每一个细节 。

面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事儿。

例如:洗衣机洗衣服

1.类与对象

类与对象的关系

  • 类是对一类事物的描述,是抽象的,(描述一类对象的行为状态)。
  • 对象是一类事物的实例,是具体的,有状态和行为。
  • 类是对象的模板,对象是类的实体。

2.类的定义

事物与类的对比:

(1)现实世界的一类事物:

          属性:事物的状态信息。

          行为:事物能够做什么。

(2)Java中用class描述事物也是如此:

          成员变量:用于描述事物的特征,即事物的属性

          成员方法:用于描述事物的行为

 

类的定义格式:

public class ClassNane {
   //成员变量
   //成员方法
}
  • 成员变量:定义在类中的变量被称为成员变量(直接定义在类当中的,在方法外边)
  • 局部变量:定义在方法中的变量被称为局部变量
  • 成员方法:和以前定义方法几乎是一样的。只不过把static去掉。

 

示例:定义一个类,用来模拟“学生”事物。

其中就有两个组成部分:

属性(是什么):

   姓名

   年龄

行为(能做什么):

   吃饭

   睡觉

   学习

对应到Java的类当中:

成员变量(属性):

   String name; //姓名

   int age; //年龄

成员方法(行为):

   public void eat() {} //吃饭

   public void sleep() {) //睡觉

   public void study() {} //学习

示例代码:

public class Students {
	//成员变量
	String name;// 姓名
	int age; //年龄
	
	//成员方法
	public void eat(){
		System.out.println("吃饭!");
	}
	public void sleep(){
		System.out.println("睡觉!");
	}
	public void study(){
		System.out.println("学习!");
	}
}
/*
一个类可以拥有多个方法,在上面的例子中:eat()、sleep()和study()都是Students类的方法。
*/

局部变量和成员变量的区别:

1.定义的位置不一样[重点]

局部变量:在方法的内部

成员变量:在方法的外部,直接写在类当中

2.作用范围不一样[重点]

局部变量,只有方法当中才可以使用,出了方法就不能再用

成员变量,整个类全都可以通用。

3.默认值不一样[重点]

局部变量:没有默认值,如果要想使用,必须手动进行赋值

成员变量:如果没有赋值,会有默认值,规则和数组一样

4.内存的位置不一样(了解)

局部变量:位于栈内存

成员变量,位于堆内存

5.生命周期不一样(了解)

局部变量:随着方法进栈而诞生,随着方法出栈而消失

成员变量:随粒对象创建而诞生,随着对象被垃圾回收而消失

示例:

	String name;//成员变量
	public void methodA() {
		int num = 10;//局部变量
		System.out.println(num);//10
		System.out.println(name);
	}
	public void methodB(int param) {//方法的参数是局部变量
		//参数方法在调用的时候,必然会被赋值
		System.out.println(param);
		int age;//局部变量
//		System.out.println(age);//没赋值不能用
//		System.out.println(num);//错误写法
		System.out.println(name);
		
	}

3.对象的创建及其使用

通常情况下,一个类并不能直接使用,需要根据类创建一一个对象, 才能使用。

   1.导包,也就是指出需要使用的类,在什么位置。

   2.创建

   格式:

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

//例如:Student stu = new Student();

   3.使用

    分为两种情况:

        使用成员变量:  对象名.成员变量名

        使用成员方法:  对象名.成员方法名(参数)

        (也就是,想用谁,就用对象名点儿谁。)

注意事项:

如里成员变量沿有进行赋值,那么将会有一个默认值。规则和数组一样。

示例代码:

	public static void main(String[] ags) {
		//1.导包
		//类在同一个包下省略不写
		
		//2.创建
		//格式: 类名称 对象名 = new 类名称();
		//根据Students类,创建一个名为stu的对象
		Students stu = new Students();
		
		//3.使用
		//格式: 对象名.成员变量
		System.out.println(stu.name); //null
		System.out.println(stu.age); //0
		
		//改变对象当中的成员变量
		//将右侧的内容,复制交给左侧stu对象中的成员变量
		stu.name = "王一博";
		stu.age = 20;
		System.out.println(stu.name); 
		System.out.println(stu.age); 	
		
		//4.使用对象的成员方法
		//格式: 对象名.成员方法名(参数);
		stu.eat();
		stu.sleep();
		stu.study();
	}

全部评论: 0

    我有话说: