类与对象

1、类与对象:
类是有某些相同性质的事物的集合,如:汽车,书籍。
对象则是指某一个具体的事物,如属于你的电脑就是一个对象。对象是基于类来定义的。
对对象的描述包括对对象的属性及方法的描述,对象的属性即对象固有特质,如该对象的名称,形状,体积,颜色等等。而对象的方法是指对象所能执行的行为或被执行的行为,如一台台灯可以执行照明,开,关等行为。
而在程序中,类就是一个模板,通过对类中对象的实例化,可以用“对象名.方法名”来调用类中的方法。
在程序中定义一个类的基本格式为:
public class 类名{
//定义属性格式
数据类型 属性名
//定义方法格式
public 返回值类型 方法名(数据类型 形参名){
//方法体
}
}

若要使用类中的方法或参数,则必须先进行实例化,一般格式为:
类名 对象名 = new 类名()
实例化后,就可以用对象名.方法名进行调用了。

2、构造方法:
构造方式是一种特殊的方法。定义构造方法与定义普通方法的区别在于两个方面:一、构造方法不需要返回值。二、构造方法的方法名必须是类名。与普通方法用来实现一个操作不同,构造方法通常用来实例化对象或是给属性赋初值。定义的一般格式为:
public 类名(数据类型 参数名){
//方法体
}

3、this关键字:
this关键字一般在方法中使用,它表示的当前调用方法的对象,它有两个用途


一、作为标签,用来区分属性名和参数。为什么要用this来进行区分呢?我们
可以从生活中的例子来看,假设有两个几乎长得一模一样的苹果,一个是较甜的品种,而另外一个较酸。如果我想吃到较甜的那个应该怎么办呢?想通过肉眼来区分这两个苹果是不可能的,此时就可以采取在买的时候就为其中的一个加上标签的做法。在程序中也是一样,为了方便理解参数的作用,我们通常将参数名与属性名保持一致,此时由于java的就近原则,程序自动判断的结果可能与我们想要的不一样,而使用this关键字就可以很好的解决这个问题。
二、用来在构造方法中调用构造方法,格式为this(参数类型 参数名,……);参数格式与哪个构造方法一致就调用哪个构造方法。

4、方法重载
有时出于编程需要,我们要描述的同一个动作,但是对象可能不同,此时使用相同的方法名较为方便理解。但是在java中一个类不能出现两个完全相同的方法,对于这种况,较好的方法就是进行方法的重载。
在进行方法重载时,需注意两点:1、重载的方法名必须与原方法名一致。2、重载方法的参数类型,参数个数,参数顺序必须有一个与原方法不同。只有满足这两点,才能算是方法的重载。

下面通过一个场景的代码描述来具体阐述:
场景:李四学生去看《Titanic》电影,学分要减1,现在的学分是……

首先定义一个Student类:
//定义Studeng类
public class Student{
//声明姓名属性,string
String name;
//声明学分属性,float
float score;

//定义构造方法
public Student(String name){
this.name=name;
}

//重载构造方法
public Student(String name,int score){
this.score=score;
this.name=name;
}

//定义学习的方法
public void study(Movie m){
score--;//学分减1
System.out.println(this.name+"学生去看"+m.getName()+"电影,学

分要减少1分,现在的学分是"+score);
}

//重载学习方法
public void study(int score){
this.score+=score;
System.out.println(this.name+"看电影,现在的学分

是"+this.score);
}

}


定义一个类Movie:
//定义电影类
public class Movie{
//声明电影名属性,string
String name;
//定义设置电影名属性值的方法
public void setName(String n){
name=n;
}
//定义获取电影名属性值的方法
public String getName(){
return name;
}
}

定义一个Test类:
//程序的主函数类
public class Test{
public static void main(String[] args){

//实例化movie类的对象
Movie m=new Movie();
m.setName("<<Titanic>>");

//实例化Student类的对象
Student stu=new Student("未命名");
stu=new Student("李四",2);
//设置对象的姓名
//stu.setName("李四");

//调用学习方法
stu.study(m);
stu.study(2);
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值