Java面向对象笔记(一)

Java面向对象笔记

1.类与对象的关系

1.1类的概念:

类是对具有相同属性的一类事物的统称,类是一个抽象的概念。

1.2对象的概念

对象是实际存在的该类事物的每个个体,因而也称为实例(instance)。

1.3类与对象的关系

具体实例化为对象后,通过对具体的对象调用该类的某一方法或属性,从而实现特定的功能,体现了java中万事万物皆对象, 而类则是创建对象的前提。
例子:

  • 类 = 抽象概念的人
  • 对象 = 具体的人

2.类与对象的创建

2.1类创建(声明)的格式

类的声明
Class 类名{
成员属性;(特征)
成员方法;(行为)
}
例如:
Class person{

}

2.2属性与方法的声明及调用格式

2.2.1属性声明

①属性声明格式:
数据类型 属性名;
②初始化属性:
属性名 = 初始化值;
③属性声明及初始化:
数据类型 属性名 = 初始化值;
例如:

Class person{
	String name;
	name = “李明”;
	int age = 20;
}

2.2.2属性调用

类名.属性名;
对象名.属性名;
例如:
person.name;
per.age;

2.2.3方法声明

方法声明格式:
权限修饰符 返回数据类型 方法名(形参数据类型 形参名){
方法体;
return 返回值;
}
例如:

Class person{
	String name;
	name = “李明”;
	int age = 20;
	void show(){
		system.out.println(“姓名为”+name+“,年龄为”+age);
	}
	Public int getAge(int age){
		age = 22;
		return age;
	}

}

2.2.4方法调用

对象名.方法名(形参);
例如:
Per.show();
per.getAge(20);

2.3类创建的注意事项:

  1. 类必须编写在java文件中,一个java文件中,可以存在多个class类,但只能有一个pbulic修饰的类。
  2. java文件的文件名称必须同public修饰的class类名称相同。
  3. 对于class的权限修饰只可以用public和default(缺省)

2.4对象创建的格式

  1. 类名 对象名 = new 类名();
  2. 对象的创建也叫做类的实例化。
  3. 使用“对象名.对象成员 ”的方式访问对象成员(包括属性和 方法

例如:

public class Zoo{
	public static void main(String args[]){
		// 创建对象
		Animal xb=new Animal();
		xb.legs=4;// 访问属性
		System.out.println(xb.legs);
		xb.eat();// 访问方法
		xb.move();// 访问方法
	}
}

2.5类的访问机制

  • 在一个类中的访问机制: 类中的方法可以直接访问类中的成员变量 。(例外:static方法访问非static,编译不通过 。)
  • 在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员。

2.6对象的创建和使用:内存解析

  • 堆(Heap),此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。
  • 通常所说的栈(Stack),是指虚拟机栈。虚拟机栈用于存储局部变量等。局部变量表存放了编译期可知长度的各种基本数据类型(boolean、byte、char 、 short 、 int 、 float 、 long 、double)、对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址)。 方法执行完,自动释放。
  • 方法区(Method Area),用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
    在这里插入图片描述

3.匿名对象

我们也可以不定义对象的句柄,而直接调用这个对象的方法。这
样的对象叫做匿名对象。

如:new Person().shout();

使用情况
如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。我们经常将匿名对象作为实参传递给一个方法调用。

4. 类的成员之一:属性(field)

  • 语法格式:
    符修饰符 数据型 类型 属性名 = 初始化值;
  • 说明1: 修饰符
    常用的权限修饰符有:private、缺省、protected、public
    其他修饰符:static、final (暂不考虑)
  • 说明2 :数据类型
    任何基本数据类型(如int、Boolean) 或 任何引用数据类型。
  • 说明3 :属性名
    属于标识符,符合命名规则和规范即可。

举例:

public class Person{
  private int age; // 声明private变量 age
  public String name =“Lila”; //声明public变量 name
}

4.1变量 的分类:成员变量与局部变量

  1. 在方法体外,类体内声明的变量称为成员变量。
  2. 在方法体内部声明的变量称为局部变量。

成员变量:实例变量(不以static修饰)、类变量(以static修饰)
局部变量:形参(方法、构造器中定义的变量)、方法局部变量(在方法内定义)、代码块局部变量(在代码块内定义)

注意:二者在初始化值方面的异同
同:都有生命周期
异:局部变量除形参外,均需显式初始化。

4.2成员变量(属性)和局部变量的区别

声明的位置
修饰符
初始化值
内存加载位置

成员变量局部变量
直接声明在类中方法形参或内部、代码块内、构造器内等
private、public、static、final等不能用权限修饰符修饰,可以用final修饰
有默认初始化值没有默认初始化值,必须显式赋值,方可使用
堆空间或静态域内栈空间

4.3对象属性的默认初始化赋值

成员变量类型初始值
byte0
short0
int0
long0L
float0.0L
double0.0
char/u0000
booleanfalse
引用类型null

5.类的成员之二:方法(method)

5.1方法(method 、函数)的含义

  1. 方法是类或对象行为特征的抽象,用来完成某个功能操作。在某些语言中也称为函数或过程。
  2. 将功能封装为方法的目的是,可以实现代码重用,简化代码
  3. Java里的方法不能独立存在,所有的方法必须定义在类里。

例如:

public class Person{
  private int age;
  public int getAge() { //声明方法getAge()
   return age;
  }
  public void setAge(int i) { //声明方法setAge
   age = i; //将参数i的值赋给类的成员变量age
  }
}

5.2方法的声明格式

修饰符 返回值类型 方法名(参数类型 参形1,参数类型 形参2, …){
方法体程序代码
return 返回值;

修饰符:public, 缺省,private, protected等
返回值类型

  1. 没有返回值:void
  2. 有返回值,声明出返回值的类型。与方法体中“return”返回值”搭配使用。

方法名 :属于标识符,命名时遵循标识符命名规则和规范,“见名知意”。

形参列表:可以包含零个,一个或多个参数。多个参数时,中间用“, ”隔开。

返回值:方法在执行完毕后返还给调用它的程序的数据。

5.3注意点:

  1. 方法被调用一次,就会执行一次
  2. 没有具体返回值的情况,返回值类型用关键字void表示,那么方法体中可以不必使用return语句。如果使用,仅用来结束方法。
  3. 定义方法时,方法的结果应该返回给调用者,交由调用者处理。
  4. 方法中只能调用方法或属性,不可以在方法内部定义方法。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值