java学习笔记(二)

3.16  类~~~~~~~~

java面向对象编程(一)

类与对象,构造方法

一个全面的类定义比较复杂

package 包名;
class 类名 extends 父类 implements
接口名{
成员变量;
构造方法;
成员方法;
}
  • 类名的首字母大写

一般创建对象:类名 对象名 = new  类名(); 

 

类的成员方法(成员函数)定义

  • 方法名的首字母是小写的
  • 如何定名字1.驼峰法(匈牙利法)myCry  2.下划线法my_cry
public 返回数据类型 方法名(参数列表)
{
    语句;//方法(函数)主体
}

 

构造方法:

提出:在创建对象的时候直接指定属性

构造方法是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。它有几个特点:

  1. 构造方法名和类名相同
  2. 构造方法没有返回值
  3. 主要作用是完成对新对象的初始化
  4. 在创建一个类的新对象时,系统会自动的调用该类的构造方法完成新对象的初始化
  5. 一个类可以定义多个不同的构造方法
  6. 每个类都有一个默认的构造方法

代码合集:

 /*
作者:陈晓宇
日期:2012.3.16
功能:完成找小猫的问题
*/
class Cat
{
	//下面的就是类的成员变量(属性)
	int age;
	String name;
	String colour;
}

class Person
{
		int age;
		String name;
		
		//构造方法
		public Person(int age,String name)
		{
			System.out.println("我是构造1");
			age=age;
			name=name;	
		}
		
		public Person(String name)
		{
			System.out.println("我是构造2");
				name =name;
		}
		//行为
		public void speak()
		{
			System.out.println("I'm a good guy");
		}
		public void jiSuan()
		{
			int result=0;
			for(int i=1;i<=1000;i++)
			{
				result+=i;	
			}
			System.out.println("result="+result);
		}
		public void jiSuan(int n)
		{
			int result=0;
			for(int i=1;i<=n;i++)
			{
				result+=i;	
			}
			System.out.println("result="+result);
		}
		
		public void chengfa(int n)
		{
				for(int i=1;i<=n;i++)
				{
					for(int j=1;j<=i;j++)
						{
							System.out.print(i+"*"+j+"="+i*j+" ");	
						}
					System.out.println();
				}	
				
		}
}

public class Demo4
{
	public static void main(String []args)
	{
		/*int cat1Age=3;
		String cat1Name="小白";
		String cat1Color="白色";	
		
		int cat2Age=100;
		String cat2Name="小花";
		String cat2Color="花色";
		*/
		//创建一个猫对象
		Cat cat1=new Cat();
		//访问属性的 对象名.属性名
		cat1.age=3;
		cat1.name="小白";
		cat1.colour="白色";
		
		Cat cat2=new Cat();
		cat2.age=100;
		cat2.name="小花";
		cat2.colour="花色";
		
		Person p1 = new Person(25,"chenxiaoyu");
		Person p2 = new Person("haha");
		p1.speak();
		//p1.jiSuan();
		//p1.jiSuan(10);
		//p1.chengfa(10);
	}	
}


 

 

java面向对象编程(二)

目标:

  1. 初步理解什么是this代词
  2. 什么是类变量和类方法
  3. 初步理解抽象、封装和继承,多态 
//功能:this的必要性

public class Demo3
{
	public static void main(String []args)
	{
		Dog dog1=new Dog(2,"大黄");
		Person p1 = new Person(dog1,23,"郭德纲");
		Person p2 = new Person(dog1,24,"刘谦");
		p1.showInfo();
		p2.showInfo();
	}
}

class Dog
{
	int age;
	String name;
	public Dog(int age,String name)
	{
		this.age=age;
		this.name=name;
		}	
		//显示狗名
		public void showInfo()
	{
		System.out.println("狗名是:"+this.name);
	}
}

class Person
{
	int age;
	String name;
	Dog dog;//引用类型
	public Person(Dog dog,int age,String name)
	{
		//可读性不好
		this.age = age;
		this.name = name;
		this.dog = dog;
	}
	public void showInfo()
	{
		System.out.println("人名是:"+this.name);
		this.dog.showInfo();
	}
}
  •  this不能再类定义的外部使用,只能在类定义的方法中使用

 类变量(静态变量 )

提出问题:有一群小孩在玩游戏,不断有新小孩加入游戏,怎样统计小孩的人数? pl~~~

//功能:this的必要性

public class Demo3
{
	public static void main(String []args)
	{
		Child ch1 = new Child(3,"妞妞");
		ch1.joinGame();
		Child ch2 = new Child(4,"阿迪飞");
		ch2.joinGame();
		
		System.out.println("共有:"+Child.total);
		System.out.println("共有:"+ch1.total);	
		System.out.println("共有:"+ch2.total);
			
	}
}

class Child
{
	int age;
	String name;
	//静态变量,可以被任何一个对象访问
	static int total=0;
	public Child(int age,String name)
	{
		this.age=age;
		this.name=name;
	}	
	public void joinGame()
	{
		total++;
		System.out.println("有一个小孩加入游戏");
		}
}

  •  什么是类变量?

类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。

  • 如何定义类变量?

定义语法:

访问修饰符 static 数据类型 变量名;

  • 如何访问类变量?

类名.类变量名 或者 对象名.类变量名

 

public class Demo3
{
	static int i=1;
	static
	{
		//该静态区域块只被执行一次
		//即使不创建对象 也会被执行!!
		System.out.println("a");
		i++;	
	}
	public Demo3()
	{
		System.out.println("b");
		i++;
	}
		
	public static void main(String []args)
	{
		
	    Demo3 t1=new Demo3();
	    System.out.println(t1.i);//3
	
	    Demo3 t2=new Demo3();
	    System.out.println(t2.i);//4
		
	}
}


类方法:

public class Demo3
{
	public static void main(String []args)
	{
		Stu stu1 = new Stu(29,"aa",340);
		Stu stu2 = new Stu(25,"bb",530);
		System.out.println(Stu.getTotalFee());
	}
}

class Stu
{
	int age;
	String name;
	int fee;
	static int totalFee;
	public Stu(int age,String name,int fee)	
	{
		this.age=age;
		this.name=name;
		totalFee+=fee;	
	}
	//返回总学费 类方法(静态方法)
	//java中规则:类变量原则上用类方法去访问和操作
	public static int getTotalFee()
	{
		 //age++;//错误
		 return totalFee;
	}
}
  • 类变量与实例变量区别:
  1. 加上static成为类变量或者静态变量,否则称为实例变量
  2. 类变量是与类相关的,公共的属性;实例变量时属于每个对象个体的属性;
  3. 类变量可以通过类名.类变量名直接访问(不能是private)
  • 类方法小节
  1. 类方法属于与类相关的,公共的方法
  2. 实例方法属于每个对象个体的方法
  3. 类方法可以通过类名.类方法名直接访问
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值