java面向对象入门之 汉诺塔,同名方法 等练习笔记

使用书籍《java从门到精通》,《java经典编程300例》

访问包位置 private protected public
本类 可见 可见 可见
同包其他类或子类 不可见 可见 可见
其他包的类或子类 不可见 不可见 可见

this关键字用于表示本类当前的对象,当前对象不是某个new出来的实体对象,而是当前正在编辑的类。this关键字只能在本类中使用。

  1. 入门练习--自定义图书类 
package bb;

public class ss {
	private String bookname;
	private String author;
	private int price;
	public ss(String a,String b,int c)
	{
		this.bookname=a;
		this.author=b;
		this.price=c;
		
	}
	public String get1()
	{
		return bookname;
	}
	public String get2()
	{
		return author;
	}
	public int  get3()
	{
		return price;
	}
public static void main(String[] args)
{
	ss p1=new ss("小杰学java","小杰",50);//新建对象,并初始化
	System.out.println("书名: "+p1.get1());
	System.out.println("人:  "+p1.get2());
	System.out.println("价格:  "+p1.get3());
	
}
}
	
	
书名: 小杰学java
人:  小杰
价格:  50

 小白笔记:一个类,通常包括域和方法两部分。域表示对象的状态,方法表示对象的行为。使用new关键字可以创建类的对象。通常情况下,不同的对象状态是有差别的。可以使用构造方法在创建对象时就设置状态,也可以使用方法在创建对象后修改对象的状态。

 2.入门练习--汉诺塔问题求解

问题描述:有A,B,C,3根柱子,在A从上往下按照从小到大的顺序放着64个圆盘,以B为中介,把盘子全部移动到C上。移动过程中,要求任意盘子的下面要么没有盘子,要么只能有比它大的盘子。

  • 下面以3个盘子为例
  • package bb;
    
    public class ss {
    	public static void move(int level,char p1,char p2,char p3)//p2做中间的盘子,level代表几个盘子
    	{
    		if(level==1)
    		{
    			System.out.println("从"+p1+"移动盘子 1 号到"+p3);
    			
    		}
    		else
    		{
    			move(level-1,p1,p3,p2);//把levle-1个盘子从A移动到B
    			System.out.println("从"+p1+"移动盘子 "+level+"号到"+p3);
    			move(level-1,p2,p1,p3);//把level-1个盘子从B移动到C
    			
    		}
    	}
    	public static void main(String[] args)
    	{
    		int level=3;
    		move(level,'A','B','C');
    	}
    	}
    	
    	

    为了将第N个盘子从A移动到C,需要先将第N个盘子上面的N-1个盘子移动到B上,这样才能将第N个盘子移动到C上。同理,为了将第N-1个盘子从B移动到C上,需要将N-2个盘子移动到A上,这样才能将第N-1个盘子移动到C上。 

    3.入门练习——编写同名的方法

  • 在C语言中,如果要在一个文件内定义两个同名的函数(方法)会报告错误,这种情况在弄具有相似功能不同参数的方法非常不利,在java种可使用重载技术来实现这个需求

定义一个方法,分别求2个Int,double,long型数据的和

public static int get1(int a,int b)
{
return a+b;
}
public static double get1(double a,double b)
{
return a+b;
}
public static long get1(long a,long b)
{
return a+b;
}

例如下面的加鸡蛋问题:

public class egg{
int egg1;
public egg(int p)
{
this.egg1=p;
}
public egg()
{
this(1);
}
public static void main(String[] args)
{
egg cake1=new egg();
System.out.println("顾客不要求加鸡蛋,饼里会有"+cake1.egg1+"个鸡蛋");
egg cake2=new egg(2);
System.out.println("顾客要求加2个鸡蛋,饼里有"+cake2.egg1+"个鸡蛋");
}
}
顾客不要求加鸡蛋,饼里会有1个鸡蛋
顾客要求加2个鸡蛋,饼里有2个鸡蛋

 面向对象入门笔记(1),厚积薄发,一步一个脚印!

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>