对象和类 java

简介: 对象和类 java

.修饰符 返回值类型 方法名(参数列表){

//代码省略…

return 结果;

}


一个类与它的对象之间是什么关系?

类是对象的模板,对象是类的实体


如何定义一个类,由哪些部分组成,各个部分的作用是什么?

三部分:
  成员变量:描述事物的状态信息
  构造方法:创建事物对象
  成员方法:描述事物能做什么


如何创建一个对象,如何使用该对象?

// 创建对象格式: 
  数据类型 变量名 = new 数据类型();
// 对象使用方式:
  变量名.成员变量
  变量名.成员方法


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

在类中的位置不同 
  成员变量:类中,方法外 
  局部变量:方法中或者方法声明上(形式参数)
作用范围不一样 
  成员变量:类中 
  局部变量:方法中
初始化值的不同 
  成员变量:有默认值 
  局部变量:没有默认值。
在内存中的位置不同 
  成员变量:堆内存 
  局部变量:栈内存
生命周期不同 
  成员变量:随着对象的创建而存在,随着对象的消失而消失 
  局部变量:随着方法的调用而存在,随着方法的调用完毕而消失


构造方法和成员方法的区别?

作用不同:
  构造方法:创建对象
  成员方法:执行某具体功能
命名不同:
  构造方法:类名一致
  成员方法:自定义
返回值类型不同:
  构造方法:无返回值类型
  成员方法:void或者确定的数据类型
调用不同:
  构造方法:new 关键字调用
  成员方法:对象.成员方法名调用


构造方法: 语法

public 类名(){} (构造方法没有返回值, 构造方法:一般用于给对象赋初始值)

```

public class 类名 {

String breed; 品种

int size; 大小

String colour; 颜色

int age; 年龄


void eat() {          方法1   吃
}
void run() {          方法2   跑步
}
void sleep(){      方法3    睡觉
}
void name(){        方法5     名字
}


}

一个类可以包含以下类型变量:

局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。

一个类可以拥有多个方法,在上面的例子中:eat()、run()、sleep() 和 name() 都是 Dog 类的方法


构造方法

每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。

在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。

下面是一个构造方法示例:

public class Puppy{

public Puppy(){

}


public Puppy(String name){
    // 这个构造器仅有一个参数:name
}
一个简单的例子


在该例子中,我们创建两个类:Employee 和 EmployeeTest。

首先打开文本编辑器,把下面的代码粘贴进去。注意将文件保存为 Employee.java。

Employee 类有四个成员变量:name、age、designation 和 salary。该类显式声明了一个构造方法,该方法只有一个参数。

Employee.java 文件代码:

import java.io.*;
public class Employee{ 先组件个外壳 再往里填写内在
String name;
int age;
String designation;
double salary;
// Employee 类的构造器
public Employee(String name){
this.name = name;
}
// 设置age的值
public void empAge(int empAge){
age = empAge;
}
/* 设置designation的值*/
public void empDesignation(String empDesig){
designation = empDesig;
}
/* 设置salary的值*/
public void empSalary(double empSalary){
salary = empSalary;
}
/* 打印信息 /
public void printEmployee(){
System.out.println(“名字:”+ name );
System.out.println(“年龄:” + age );
System.out.println(“职位:” + designation );
System.out.println(“薪水:” + salary);
}

}

程序都是从main方法开始执行。为了能运行这个程序,必须包含main方法并且创建一个实例对象。

下面给出EmployeeTest类,该类实例化2个 Employee 类的实例,并调用方法设置变量的值。

将下面的代码保存在 EmployeeTest.java文件中。

EmployeeTest.java 文件代码:

import java.io.;
public class EmployeeTest{
public static void main(String[] args){
/* 使用构造器创建两个对象 */
Employee empOne = new Employee(“RUNOOB1”);
Employee empTwo = new Employee(“RUNOOB2”);


// 调用这两个对象的成员方法
  empOne.empAge(26);
  empOne.empDesignation("高级程序员");
  empOne.empSalary(1000);
  empOne.printEmployee();
  empTwo.empAge(21);
  empTwo.empDesignation("菜鸟程序员");
  empTwo.empSalary(500);
  empTwo.printEmployee();


}

}

编译这两个文件并且运行 EmployeeTest 类,可以看到如下结果:

$ javac EmployeeTest.java
$ java EmployeeTest 
名字:RUNOOB1
年龄:26
职位:高级程序员
薪水:1000.0
名字:RUNOOB2
年龄:21
职位:菜鸟程序员
薪水:500.0


相关文章
|
2月前
|
设计模式 网络协议 数据可视化
Java 设计模式之状态模式:让对象的行为随状态优雅变化
状态模式通过封装对象的状态,使行为随状态变化而改变。以订单为例,将待支付、已支付等状态独立成类,消除冗长条件判断,提升代码可维护性与扩展性,适用于状态多、转换复杂的场景。
278 0
|
3月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
237 101
|
3月前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
290 100
|
2月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
99 4
|
2月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
167 5
|
2月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
158 1
|
2月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
214 1
|
2月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
154 1
|
2月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
173 1
|
2月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
282 5