java类与对象的创建与使用(注意与c++的有些关键字不一样)
来源:互联网 发布:python自动化工作 编辑:程序博客网 时间:2024/05/22 00:34
一、类的创建
格式: [修饰符] <class><类名> [extends父类] [implements接口]
{ 类体(成员变量和成员方法) }
修饰符:指明类在使用时所受到的限制,包括类访问权限[public]和其他特性[abstract],[final]
例:public class C1 { …… }
public class C2extends Applet implements ActionListener
{……}
1.class <类名>
告诉编译器这是一个类
2.Public(公共的)
在没有任何修饰符的默认情况下,类只能被同一个源程序文件或同一个包中的其他类使用,加上public后,该类可以被任何包中的类使用,称为公共类。
注意:在同一个源程序文件中不能出现两个及以上的public类,否则编译器会告诉你将第二个public类放在另一个文件中。
3.abstract(抽象的)
abstract说明的类称为抽象类,不能用它实例化一个对象,它只能被继承,abstract方法是不含代码的方法,需要以后的子类中重载实现,abstract类的子类必须实例化(实现)abstract方法,或将自己也声明为abstract。这对于定义概念是有用的。
4.final(最终的)
final说明的类称为最终类,最终类不能被继承
Java中的String和Array类就是一个final类
注意:final和abstract不能同时修饰一个类(出错),这样的类没有意义
无修饰符是默认方式,即不使用上述三种修饰符。因此它们的优势和限制都没有作用,无修饰符的类可以被其他类访问和继承,但只有在相同程序包中的那些对象才可能使用这样的类。
5.extends(继承)父类名
extends告诉编译器创建的类是从父类继承下来的子类,父类必须是Java系统类或已经定义的类。
从父类继承,可以提高代码重用性,不必从头开始设计程序。
6.implements(实现)接口名
implements告诉编译器类实现的接口,接口必须有定义,一般为系统类。
接口是消息传递的通道,通过接口,消息才能传递到处理方法中进行处理。implements说明你的类可以实现的一个或多个接口,如果有多个接口,要用逗号分隔。
例:import java.awt.*;
importjava.applet.*;
public class ch3extends Applet{
public void paint(Graphics g) {
g.drawString("Hello Java!I love you^_^",25,25); } }
<html>
<head>
<title>HelloJava Applet测试</title>
</head>
<APPLETcode=ch3.class width=200 height=40>
抱歉,你的浏览器不支持JAVA APPLET┅
</APPLET>
</html>
二、对象的创建1.创建对象与构造方法
创建对象格式: 类名对象名=new类名([参数]);
说明:(1)运算符new为对象分配内存空间;
(2)生成对象的最后一步是执行构造方法;
(3)创建对象相当于定义一个变量,即分两步进行。
创建对象分成两步: 类名对象名 ;
对象名=new 类名([参数]);
2.对象初始化的说明
(1)系统如何对变量初始化
当用new创建了一个对象时,系统会为对象中的变量进行初始化。即不但为变量分配相应的存储单元,还设置相应初值。系统为byte , short , int , long类型设置初值为0;float类型变量初值为0.0f;double类型变量初值为0.0;char字符型变量为’u\0000’;boolean逻辑变量初值为false;引用类型初值勤为null。
(2)构造方法的作用与构成
new操作符为对象分配内存后将调用类的构造方法确定对象的初始状态,初始化所有变量。
构造方法功能:创建对象时,用给定的值,将对象初始化
构造方法特点:
(1)构造方法名与类名相同,且不指定类型说明;
(2)可以重载,即可以定义多个参数个数不同的函数,系统可以根据参数的不同,自动调用正确的构造方法;
(3)程序中不能直接调用构造函数,在创建对象时系统自动;
(4)可以不设计构造方法,若在初始化时还要执行一些其他命令,就必须设计构造方法,因为Java规定命令语句不能出现在类体中,只能放在方法中。
重载:参数不同可以是数量不同,类型不同,或两者都不同,但重载方法必须有相同的方法名和相同的返回类型。
例:class ABC{
public ABC( ) {……} //无参数构造方法
public ABC(int a, int b ) {……} //带两个参数构造方法
public ABC(String a ) {……} //带一个个参数构造方法
public int ABC(int a) {……} //错,构造方法不能有类型返回值
public void ABC( ) {……} //错,构造方法不能有类型返回值
}
例:public class SC{
public static void main(String args[]){
sc1 a=new sc1( ) ;
sc1 b=new sc1("练习");
System.out.println("程序结束!");} }
class sc1{
public sc1( ) {System.out.print("开始");}
public sc1(String z) {System.out.println(z);} }
运行结果:开始练习
程序结束
三、对象的使用格式:<对象名>.<变量名>
<对象名>.<方法名([参数])>
例:SC a =new SC( ) //SC是已定义的类,a则是新建的SC对象
a.bian=23 // 将对象a的变量bian赋值23
a.Fan( ) // 调用对象a的方法Fan
例:class parents{
private Stringname[]=new String[5];
parents(Strings[])
{for(inti=0;i<s.length;i++)
name[i]=s[i]; }
public voidshowname()
{for(inti=0;i<s.length;i++)
System.out.print(name[i]+” ”);
}}
class SC
{ public static void main(String args[])
{ Stringname[]={"Zhang","Wang","Li"};
parentsp=parents(name);
p.showname()
}}//相当于是主函数
结果:输出 Zhang Wang Li
例:public class NewClass{
public static void main(String args[]){
G k=new G();
k.setK(8);
int y=k.getK();
System.out.println(“y=”+y); }
}}
class G{
private int k;
public void setK(int x){
k=x; }
public int getK(){ return k;}
}}
运行结果: y=8
四、清除对象
Java引入了新的内存管理机制,由Java虚拟机担当垃圾收集器的工作。你可以任意创建对象,而不用担心如何清除它们,垃圾收集器会自动清除它们。
如果要明确地清除一个对象,可以自行清除它。只需把一个空值赋给这个对象引用即可。如
SC a =new SC( )
……
a=null // 将对象a从内存中清除
五、析构方法(finalize)(补充)
析构方法(finalize)与构造方法相对应,当对象已经无用,需要清除时,编译器将自动调用对象的finalize方法。析构方法一般是做一些清除工作,如关闭打开的文件等,但不能执行用户输入操作或与其他对象进行交互。
如 class ABC{
……
protected|public void finalize( )
{ // do somecleanup code } }
- java类与对象的创建与使用(注意与c++的有些关键字不一样)
- 【JAVA】32、对象的创建与使用
- C++——对象的创建与使用(一)
- C++——对象的创建与使用(二)
- DLL的创建与使用的关键字
- 对象的创建与使用
- Java 类与对象的创建
- 不一样的Javascript(11)——函数与对象
- js基础进阶2-2 面向对象(类与对象的创建与使用)
- java 中 new 对象 与 直接 赋值的对象为何不一样。
- 默认值对象的创建与使用
- 第二章,对象的创建与使用
- SAP权限对象的创建与使用
- 4.2 C++对象的创建与使用
- C++对象的创建与使用
- JS对象的创建与使用
- java对象的创建与初始化
- java对象的创建与初始化
- C#线程:BeginInvoke和EndInvoke方法
- java泛型类
- 标准差和标准误的区别
- MTK GPIO 一些理解
- Web 应用程序常见漏洞 CSRF 的入侵检测与防范
- java类与对象的创建与使用(注意与c++的有些关键字不一样)
- Java web项目开发中,BigDecimal类型的数据,保留小数位数
- sql收缩数据库日志的几种办法
- Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信例子_Android支持蓝牙4.0版本_BLE开发
- LeetCode——Combination Sum II
- ListView的滚动事件onScrollListener详解
- 二维图像的离散傅立叶变换处理
- ARM连接器错误一则
- Sudoku Solver