Java中的类
来源:互联网 发布:凸的网络意思是什么 编辑:程序博客网 时间:2024/06/07 15:00
在Java语言中经常被提到的两个词汇是类与对象,实质上可以将类可以看作是对象的载体,它定义了对象所具有的功能。
什么是类?
不可能将所谓的一个事物描述成一类事物,如一只鸟不能称为鸟类,如果需要对同一类事物统称,就得提出类的概念。类就是同一类事物的统称,如果将现实世界中的一个事物抽象成对象,类就是这类对象的统称,如鸟类、家禽类、人类等。类是构造对象时所依赖的规范,例如,一只鸟具有一对翅膀,而它可以通过这对翅膀飞行,而基本上所有的鸟都具有这个特性和飞行的技能,这样具有相同特性和行为的一类事物就称为鸟类,类的思想就是这样产生的。类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。
类的构造方法(构造器)
在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法。构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的,每当类实例化一个对象时,类就会自动调用构造方法。◇构造方法没有返回值◇构造方法的名称要与本类的名称相同。◇在构造器中,不需要使用return语句. 其实构造器是有返回值的,返回的是当前创建对象的引用.
public book(){ //构造方法体}//在构造方法中可以为成员变量赋值,这样当实例化一个本类对象时,相应变量也将被初始化。//如果在类中定义的构造方法都不是元参的构造方法,则编译器不会为类设置一个默认的元参构造方法,当试图调用无参构造方法实例化一个对象时,编译器会报错。所以只有在类中没有定义任何构造方法时,编译器才会在该类中自动创建一个不带参数的构造方法。
Practice
This关键字调用类的成员变量和成员方法。
//注意:在无参构造方法中可以使用this关键字调用类的成员变量和成员方法,事实上this还可以调用类中的构造方法
public class AnyThting { public AnyThting(){ //定义无参构造方法 this("this调用有参构造方法"); //使用this关键字调用有参构造方法 System.out.println("无参构造方法"); } public AnyThting(String name){ //定义有参构造方法 System.out.println("有参构造方法"); }}
类的代码块
代码块的概念
在类中或者在方法中,直接用{}括起来的一段代码,表示一块代码区域。
代码块的分类
■局部代码块public void method(){ System.out.println("局部代码块"); }→只会在被调用的时候执行,理论上能被执行无数次。■初始化代码块{ System.out.println("初始化代码块");}→会在创建对象时执行,先执行初始化代码块,再执行构造方法代码块,每new一次就会执行一次■构造代码块public Block(){ System.out.println("构造方法"); }→与初始化代码块一样,都是在创建对象的时候执行的,每new一次就会执行一次。■静态代码块static { System.out.println("静态代码块"); }→会随着类的加载而加载,只会执行一次
代码块的初始化顺序
静态代码块->初始化代码块->构造方法代码块->局部代码块
类的主方法
主方法是类的入口点,它定义了程序从何处开始;主方法提供对程序流向的控制,Java编译器通过主方法来执行程序。主方法的语法格式如下:
public static void main(String args[]){ //}□主方法是静态的。要直接在主方法中调用其他方法,则该方法必须也是静态的。□主方法没有返回值□主方法的形参为数组用args[0]~args[n]分别代表程序的第一到第n个参数,可以使用args.length获取参数的个数
成员变量
在Java语言中对象的属性称为成员变量,也可以称为属性。
归属于类,在类创建时就加载到了方法区中。
不必初始化就可以使用,因为这成员变量有初始值。
成员变量的有效范围是整个类(所以成员变量又称全局变量)
Demo
public class Book { private int id; //定义一个int成员变量 private String name; //定义2个Sting型的成员变量 private String category; public String getName(){ //定义一个getName()方法 int id=0; //局部变量 setName("java"); //调用类中的其他方法 return id+this.name; //设置方法的返回值 } private void setName(String name){ //定义一个setName方法 this.name=name; //将参数赋予类的成员变量 } public Book getBook(){ return this; //返回book类引用 }}
成员方法
在Java语言中使用成员方法对于类对象的行为。以Book类为例,它包含getName()和setName()两个方法,分别获取图书名称和设置图书名称的方法。
权限修饰符 返回值类型 方法名(参数类型 参数名){ ....//方法体 return 返回值;}//在成员方法中可以调用其他成员方法和类成员变量。如果一个方法中含有与成员变量同名的局部变量,则方法中对这个变量的访问以局部变量进行访问。
局部变量
局部变量是在方法被执行时创建的,在方法执行结束时被销毁。局部变量在使用时必须进行赋值或被初始化,否则会出现编译错误。
public String getName(){ //定义一个getName方法 int id=0; //局部变量 setName("java"); //调用类中其他方法 return id+this.name; //设置方法返回值}
局部变量的有效范围
局部变量的有效范围称为变量的作用域,局部变量的有效范围从该变量的声明开始到该变量的结束为止。
局部变量的分类: 1)方法内部的变量 2)方法的形参 3)代码块中的变量,一对{}
Demo
class ABC{ String info = null; //成员变量 void doWork(String name) //局部变量 { System.out.println(x); int age; //局部变量 if(true) { int num; //局部变量 } } { int num; //局部变量 } String x ; //成员变量}
变量的生命周期
◆局部变量: 在开始定义的位置开始,到紧跟着结束的花括号为止
◆成员变量,可以先使用后定义,局部变量必须先定义而后才能使用
★变量的作用域决定了变量的生命周期,作用域不同,生命周期就不一样。
★变量的生命周期指的是一个变量被创建并分配内存空间开始,到该变量被销毁并清除其所占内存空间的过程。
阅读全文
0 0
- 【java】:java中的StringBuffer类
- 【Java】Java中的集合类
- Java中的Collection类
- Java中的Random类
- JAVA中的集合类
- JAVA中的集合类
- JAVA中的集合类
- 谈谈Java中的类
- JAVA中的集合类
- JAVA中的类反射
- JAVA中的集合类
- 关于JAVA中的类
- JAVA中的集合类 - -
- JAVA中的类
- JAVA中的集合类
- Java中的Collection类
- Java中的Collection类
- java中的抽象类
- RadioButton改造成ImageButton,解决RadioButton没有选中状态
- Servlet学习笔记
- lintcode--三数之和
- android studio 编译工程一直building gradle info...
- 每天五分钟linux(2)-cd
- Java中的类
- tomcat应用启动异常:Exception loading sessions from persistent storage
- HDU 4857 逃生(逆向拓扑求最小靠前)
- django 实践后的问题总结
- 艾默生plc编程软件(ControlStar)下载 v2.40中文免费版
- NOIP2017 7.17模拟 Minimum (最短路+最小生成树)
- - Cleaning Shifts
- 《Java设计模式之工厂模式》
- STM32半主机模式