`
lazyee
  • 浏览: 15127 次
社区版块
存档分类
最新评论

类与对象

    博客分类:
  • java
阅读更多
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);
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics