Java面向对象入门

package com.org.lxh;

import java.util.Calendar;

/**
 * 面向对象编程入门
 * @author hemmingway <hemmingway@163.com>
 *
 */
public class Chp6 {
	int num=500;											//成员变量
	public static int num2=200;								//静态变量
	public static final double   PI=3.1415926;			//静态常量

	/**
	 * 静态方法
	 */
	public static void printInfo(){
		System.out.println("通过静态方法输出的信息");
	}
	
	/**
	 * 静态语句块
	 */
	static {
		System.out.println("initial......");
	}
	
	/**
	 * @param args
	 */
	//@SuppressWarnings("static-access")		//用实例引用static变量,方法时会出现这个警告,错误
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1、面向对象的特征有哪些?Java、C++、C#
	    /*
	     * 封装:面向对象的编程中,大多数是以类作为数据封装的基本单位。封装可以隐藏实现的细节,使得代码模块化。
	     * 
	     * 
	     * 继承:任何类都可以从另外一个类继承,就是说,这个类拥有它继承的类的所有成员。
	     * 
	     * 
	     * 多态:减少代码之间的紧密耦合,增加应用程序的灵活性。
	     * 
	     * 
	     */
		
		
		//2、为什么需要面向对象?
		/*
		 * 在较早的软件开发中(没有出现面向对象思想前),一般会存在以下问题:
		 * 
		 * 软件重用性差
		 * 
		 * 软件可维护性差
		 * 
		 * 开发出来的软件不能满足用户的需求变化
		 * 
		 */
		
		//3、什么是面向对象编程?
		/*
		 *  
		 * 
		 */
		
		//4、什么是类?
		/*
		 * 类是具有相同性质和功能的事物所构成的集合体,是对现实事物的一种抽象描述。
		 * 
		 * 
		 */
		
		//4、类和对象的区别是什么?
		/*
		 * 类(Class)是抽象的概念,用于创建对象;
		 * 对象是类的实例,是客观世界真实存在的实体。
		 * 
		 */
		
		//5、抽象类与抽象方法有什么作用?
		/*
		 * Java中声明抽象类时使用abstract关键字,具体方法格式如下:
		 * 
		 * 权限修饰符  abstract class 类名{
		 * 		//类成员
		 * }
		 * 
		 * (1)、抽象类不能直接实例化,抽象类不能用new操作符新建对象出来;
		 * (2)、抽象类中可以包含抽象成员,非抽象类中不可以;
		 * (3)、如果一个非抽象类从抽象类中派生,则必须通过覆盖来实现所有继承而来的抽象成员。
		 * 
		 * 
		 * 抽象方法就是在声明方法时,加上abstract关键字。声明抽象方法时需要注意一下3点:
		 * (1)、抽象方法必须声明在抽象类中;
		 * (2)、抽象方法不能使用static和private修饰符;
		 * (3)、抽象方法不提供任何实际实现,需要在非抽象类中重写抽象方法。
		 * 
		 * 参见抽象类 AudioMedia 的声明
		 * 抽象类的实现  MP3Music 类
		 * 
		 */
		
		 //6、访问权限public、protected、private
		 /*
		  * 
		  * 
		  */
		
		//7、构造方法有何作用?
		/*
		 * 通过构造方法可以创建类的对象,也可以创建对象的同时初始化类的数据成员。
		 * 
		 * 构造方法通常用于创建类的实例(对象),并完成必要的初始化处理。
		 * 
		 * MP3Music 类演示使用构造方法
		 * 
		 */
		
		//8、只能通过构造方法创建对象?
		/*
		 * Java通常通过构造方法构造创建对象。
		 * 但是也有另外,java.util.Calendar 类不能通过构造方法创建对象 
		 * 
		 * 其他的方法有工厂方法,放射方法创建
		 * 
		 */
		
		Calendar cal = Calendar.getInstance();		//创建Calendar对象
		System.out.println(cal.getTime());			//Sun Dec 02 16:05:06 CST 2012
		
		
		//9、什么是方法重载?
		/*
		 * 方法重载是指在一个类或接口中可以有多个相同的名称的方法,这些相同名称的方法具有不同的形参,
		 * 即形参的个数不同或形参的类型不同。
		 * 
		 * MP3Music 类中有构造方法的重载
		 * 
		 */
		
		//10、static和final的区别
		/*
		 * 静态变量不属于某一个特定的类
		 * 
		 * 权限修饰符 static 数据类型 变量名;
		 * private static int num = 100;
		 * 
		 * 在Java中使用final关键字声明常量,如果在声明常量时,使用static关键字进行修饰,则该常量就是静态常量
		 * 
		 * 权限修饰符 static final 数据类型 常量名=常量值;
		 * public     static final double   PI=3.1415926;
		 * 
		 */
		Chp6 chp6  = new Chp6();
		System.out.println("通过类的实例输出成员变量num和静态成员变量num2的值:");
		System.out.println(chp6.num + " " + Chp6.num2);		//chp6是实例输出, Chp6类名输出
		
		
		//11、静态方法
		/*
		 * 不需要通过类的实例进行访问,而是通过类名直接访问。
		 * 
		 * [权限修饰符] static 数据类型 方法名(){
		 * 		方法体;
		 * }
		 * 
		 */
		Chp6.printInfo();		//访问静态方法
		
		
		//12、静态语句块
		/*
		 * 静态语句块通常用于进行必须的初始化操作
		 * 
		 * 主方法中不需要写任何代码
		 * 
		 */

		//13、如何在一个类中访问另外一个类的方法?
		/*
		 * 
		 * 
		 */
		

	}

}

initial......

Mon Dec 03 16:17:00 CST 2012

通过类的实例输出成员变量num和静态成员变量num2的值:

500 200

通过静态方法输出的信息

 






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值