Java 使用面向对象开发
2018-06-18 03:23:25来源:未知 阅读 ()
对象就是实际存在的一些东西
程序来源于生活
软件出现的目的:
用计算机的语言描述现实世界
用计算机解决现实世界的问题
面向对象设计和开发程序的好处:
交流更加流畅
提高设计和开发效率
从现实中抽象出类分三步:
1.找出它的种类
根据“对象”的特征抽象出具体的“类”
2.找出她的属性(静态的特征(变量))
3.找出它的行为(动态的,(方法))
抽象的原则:
把多个对象抽取出来作为一个类
类图:
“+”:public
“-”:private
类图好处:
清晰,直观,方便程序的开发和设计
构造方法和重载
构造方法:
作用:给成员属性默认赋予初始值
语法:
访问修饰符 构造方法名(于类名相同)(可以指定参数)
{
//初始话代码
}
//无返回值类型
当类实例化时,系统会自动为我们分配一个无参构造
当自定义构造方法时,系统将不再提供默认无参构造
有参构造就是在无参构造的基础上在小括号内加了参数
this关键字是对一个对象的默认引用,这里用以区分同名成员变量
方法重载:
方法名相同
参数项不同(个数不同,类型不同,顺序不同)
与返回值,访问修饰符无关
在同一个类中
static关键字
static修饰变量的叫做静态变量 或者 类变量
普通变量叫做:实例变量 普通成员变量
static 修饰方法叫做静态方法
用static修饰的属性或方法,可以直接通过类名来访问,无需new出实例里对象
用final修饰的变量称为常量,其值固定不变
例:
static final string NAME=“房上的猫”;
final:常量关键字(规范:变量名大写)
静态调用:
1.实例化对象 对象.静态方法();对象.静态属性;
2. 类名.属性;类名.方法();
静态代码块:只能给static的属性赋值
static{
}
注意:代码块作用是给静态属性赋予初始值使用的
永远都比构造方法先执行一步
普通属性: 实例变量
在程序中任何变量或者代码都是在 编译时 由系统自动分配内存来存储的
静态属性:类变量
所谓静态就是指在编译后所分配的 内存会一直存在
直到程序退出 内存才会释放这个空间,也就是只要程序运行,那么这块内存就会一直存在
static的方法有以下几条限制:
它们仅能调再其他的static 方法。
它们只能访回static数据
static可以用来修饰属性,方法和代码块
this关键字的用法:
调用属性
调用方法
调用构造方法:如果使用,必须是构造方法中的第一条语句
总结:
从现实世界抽象出类
找出名词确定类、属性
找出动词确定方法
剔除与业务无关的属性和方法
方法重载的规则
方法名相同
参数项不同
与访问修饰符和返回值无关
废话不多说,上例子:
/** * 企鹅类 * @author xjz * */ public class Penguin { static String name;//静态成员变量 类变量 int health;//实例变量 普通成员变量 int love; String sex; static final String PENGUIN_SEX1="Q仔";//性别 static final String PENGUIN_SEX2="Q妹";//性别 public static void showPeng(){ System.out.println("静态方法中名称为:"+name); } // 静态代码块中只能给static的属性赋值 static{ name="初始值"; System.out.println("我是静态代码块"); } /** * 无参数构造: * 1)方法名与类同名 * 2)没有返回值 * 3)与返回的修饰符无关 * 作用:给成员属性默认赋予初始值 */ public Penguin(){ name="无名氏"; health=100; love=10; } /** * 注意:参数变量和成员变量同名,必须使用this给成员变量指定 * this本类中的对象 * @param name * @param health * @param love * @param sex */ public Penguin(String name,int health,int love,String sex){ this.name=name; this.health=health; this.love=love; this.sex=sex; } public void print() { System.out.println("宠物自白:我的名字叫"+this.name+"\n健康值为:"+health+"\n和主人的亲密关系"+love+"我是一只"+this.sex); } }
public class Dog { //属性 //昵称 String name="无名氏"; //健康值 int health=100; //亲密度 int love=0; //品种 String strain="聪明的拉不拉多犬"; /** * 输出具体的狗类对象的信息 */ public void print() { System.out.println("宠物自白:我的名字叫"+this.name+"\n健康值为:"+health+"\n和主人的亲密关系"+love+"我是一只"+this.strain); } }
public class Test { /** * @param args */ public static void main(String[] args) { Penguin peng=new Penguin();//系统默认会分配一个无参数构造 ,调用无参数构造赋值 peng.print(); Penguin peng1=new Penguin("楠楠", 100,90,"Q仔"); //自定义一个有参数构造,系统就不在默认分配无参数构造,使用无参数构造时,必须手动添加无参数构造的定义 peng1.print(); //调用静态的方式1:实例化对象,对象.静态方法(); 对象.静态属性; peng.showPeng(); peng.sex=peng.PENGUIN_SEX1; //调用静态的方式2: 类名.属性或方法 Penguin.name="兰兰"; Penguin.showPeng(); } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:监听器入门看这篇就够了
下一篇:DAO设计模式
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash