JAVA 类与对象

一、类与对象

把有相似属性的实物进行抽象描述的就是类。把类中属性具体化的就是对象,对象是类的实例化。

类有属性、方法,将这些具体化之后,就成了对象。

例如,有一个电脑的类,包含有CPU、显卡、内存、硬盘、鼠标、键盘、屏幕、品牌等等的属性,还有开机、关机、放歌等等的方法。电脑该有的都有,但是他并不能指向某一台具体的电脑,他的描述都是抽象的。只有当这些描述具体话的时候,才称为对象,比如i7的处理器,8G内存,4G显存,NVIDIA GeForce GTX 960M的显卡,1TB的硬盘,联想的品牌等等,这样就能具体的指向了某一台机器。这就是类的实例化。


二、类的定义方法

在Java中,采用“访问修饰符 class 类名”的方式定义类,并在接下来的大括号中书写类的属性和方法。

例如

public class Computer {
	private String CPU;
	public int hardDisk;
	public void power(){
		System.out.println("computer start");
	}
}
在这个电脑类中,使用public定义为公有的,Computer为类名,他包含有私有的属性CPU和公有的属性hardDisk。还有一个公有的方法power()。(值得注意的是,一般约定类名的首字母大写;变量名的首字母小写,之后每个单词的首字母大写以示区分)


三、类的实例化

类通过“类名 对象名称 = new 类的构造函数()”来实例化。

比如上面的电脑类,实例化的代码是

Computer cpt1 = new Computer();
实例化之后,就可以通过“cpt1.”来调用方法和修改属性,比如调用power方法,是“cpt1.power();”。CPU是私有的属性,不能直接通过“cpt1.CPU”来调用,只能通过在类周六定义方法来修改他的值。hardDisk是公有的属性,在外部可以直接通过“cpt1.hardDisk”来修改值。

类的对象也能作为参数定义,在定义参数时参数列表里面写“类名 对象名”,在传递参数时,直接填写要传递对象的对象名就可以已对象为参数进行传递。


四、类的构造方法

类的构造函数是用来在创建对象的时候,进行实例化的方法。构造方法在对象创建的时候,对对象的属性赋初值。

若不写构造方法,则系统会默认一个缺省的构造方法,例如:

public class Computer {
	public Computer(){}
}
在构造方法中,可以对属性赋初值,可以在参数列表中定义参数,可以通过定义不同的参数,对构造方法进行重载,以实现对于不同对象的实例化需求。用户自己定义了构造方法之后,会覆盖掉默认的构造方法。
public class Computer {
	private String CPU;
	private int hardDisk;
	public Computer(){
		System.out.println("This is a Computer.");
	}
	public Computer(String CPU,int hardDisk){
		this.CPU = CPU;
		this.hardDisk = hardDisk;
		System.out.println("This is a Computer.");
	}
}
若在构造方法中调用构造方法,使用this。下面这段代码调用第一个构造方法后,会调用第二个构造方法,给属性x和y附上相同的值

public class Point {
	private int x,y;
	point(int x){
		this(x,x);
	}
	point(int x,int y){
		this.x = x;
		this.y = y;
	}
}


五、访问控制修饰符

Java中有4种访问修饰符,分别是:public、protecte、friendly(default)、private,分别是公有的、受保护的、友元的(缺省的)、私有的。4种修饰符的权限依次递减。

访问控制修饰符可以用来修饰:属性、方法、类

public是公有的,一般把需要外部访问的方法定义为公有的,这个成员可以被所有的类访问。

prodecte是受保护的,被定义为受保护的成员后,这个成员可以被相同包中的类访问,和其他包中的子类访问。

friendly(default)是友元的(缺省的),不写访问控制修饰符的时候,成员就会被定义为缺省的。这样的成员只能被相同包中的类访问,其他包中的子类也不能访问缺省的成员。因此,这个又被成为包访问控制。

private是私有的,私有的成员只能被自己类的成员访问,且私有的成员不会被继承。构造方法也可以定义成私有的,然后通过其他成员方法调用,实现单例模式。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值