类(Class)和对象(Object)是面向对象的和兴概念
- 类是对一类事务的描述,是抽象的、概念上的定义
- 对象是诗句存在的该类事务的每个个体,因而也称为实例
可以理解为:类=抽象概念的人;对象=实实在在的某个人
面向对象程序设计的重点是类的设计,类的设计,其实就是类的成员的设计
1.类的成员
- 属性:对应类中的成员变量
- 行为:对应类中的成员方法
一个Person类,包含属性和方法:
package com.xlx.java; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello,Java!"); // 1.创建Person类的对象 Person p1=new Person(); // 2.调用属性 p1.name="张三"; p1.age=12; System.out.println(p1.name+"的年纪是:"+p1.age); // 3.调用方法 p1.eat(); p1.talk("Chinese"); } } class Person{ // 属性 String name; int age; boolean isMale; // 方法 public void eat() { System.out.println("人可以吃饭"); } public void sleep() { System.out.println("人可以睡觉"); } public void talk(String lang) { System.out.println("人可以说话,使用的语言是:"+lang); } }
- 如果创建了一个类的多个对象,每个对象都独立的拥有这个类的属性(非Static),意味着如果我们一个对象的属性A,则不影响另外一个对象的属性A的值
- 如果new一个对象等于一个已经创建了的对象,则修改该对象的值,会改变原对象的值(地址赋值)
1.属性
属性与局部变量的对比:
1.不同点
(1)在类中声明的位置的不同
- 属性:直接定义在类的一对{}中
- 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
(2)关于权限修饰符的不同
- 属性:可以在声明属性时,指明其权限,使用权限修饰符
- 常用的权限修饰符:private、public、缺省、protected(private String name;)
- 如:public除了这个类还能用;private除了这个类就不能用,不写默认缺省
- 常用的权限修饰符:private、public、缺省、protected(private String name;)
(3)默认初始化值的情况:
- 属性:类的属性,根据其类型,都有默认初始化值
- 整型(byte,short,int,long)——0
- 浮点型(float,double)——0.0
- 字符型(char)——0或'u0000'
- 布尔型——false
- 引用数据类型(类、数组、接口)——null
- 局部变量:没有默认初始化值
- 这意味着,我们在调用局部变量之前,一定要显示赋值
- 特殊:形参(局部变量)在调用时,我们赋值即可
(4)内存中加载的位置
- 属性:加载到堆空间中
- 局部变量:加载到栈空间中
2.相同点
- 定义变量的格式:数据类型 变量名 = 变量值
- 先声明后使用
- 变量都有其对应的作用域
2.方法:用来描述类应该有的功能
(1)声明:权限修饰符 返回值类型 方法名(形参列表){ 方法体 }
声明一个类:
package com.xlx.java; public class Customer { } class CustomerC{ // 属性 String name; int age; boolean isMale; // 方法 public void eat() { // 没形参没返回值 System.out.println("吃饭"); } public void sleep(int hour) { //有形参没返回值 System.out.println("休息了"+hour+"个小时"); } public String getName(){ //没形参有返回值 return name; } public String getNation(String nation) { // 有形参有返回值 String info="我的国家是"+nation; return info; } }
说明:
- 关于权限修饰符:默认的public
- Java规定的四种权限修饰符:private、public、缺省、protected
- 返回值类型:有返回值 VS 没有返回值
- 如果方法有返回值,则必须在方法声明时,指定返回值的类型,同时,方法中需要使用return关键字返回指定类型的变量或者常量
- 如果方法没有返回值,则方法声明时,使用void来表示。通常,没有返回值的方法中,就不用使用return,但是,如果用的话,只能 return; 表示返回
- return后不可声明表达式
- 形参列表:方法可以声明0个,1个,或多个形参。
- 格式:数据类型1 形参1,数据类型2 形参2,...
- 方法使用中,可以调用当前类的属性和方法。
- 方法中不可以定义一个方法