Java--面对对象编程

  1. 对象和类

类是用于创建对象的模板。使用同一个类创建的每个对象都具有相似的特性。
类包含一组特定对象的所有特征。使用面向对象语言编写程序时,并不定义各个对象,而是定义用于创建这些对象的类。编写Java程序时实际上设计和构建了一组类。程序运行时,根据需要使用这些类来创建对象,并使用他们。
Java语言包含Java类库

2.编写

从类创建对象的过程叫做 实例化对象

类: 访问修饰符 class 类名{
  	属性: 访问修饰符  属性类型  属性名; String name = "张博博"; String name;  name="";	
  	方法: 访问修饰符  返回值类型  方法名(参数类型 参数变量名){
		public  void 方法名(){
		name = "123";
		System.out.println("name="+name);
		 }
  			}
  	主方法: public  static void main(String[] args)   { 
  	类名 对象变量名 = new  类名(); -构造方法
  	系统打印语句: System.out.println("Hello"+对象变量名.name+""+ );
  				}
  		}
  		
实例化对象: 格式: 类名 对象变量名 = new  类名(); -构造方法

调用属性和方法:
 			调用本类的: 在一般方法中  直接调用    和  主方法中需要对象名.的方式调用
 			
 			调用其他类的: 都需要通过这个类的对象来调用;

对象

三个代码实例:
1.学生加减分:
public class students {
//声明学生属性
String school;
String name;
int score=0;
int age=18;
//创建学习方法
public void studyMath(){
//学分增加
for(int i=0;i<4;i++)
{
score+=5;
//打印学习过程,结果
//System.out.println(“abc”);
System.out.println(“来自”+school+“的一位”+age+“岁的”+name+“同学,学习了数学,学分增加了5分,现在是”+score);
}
}

public void studyEnglish(){
	//学分增加
	for(int i=0;i<4;i++){
	score+=2;
	//打印学习过程,结果
	//System.out.println("abc");

System.out.println(“来自”+school+“的一位”+age+“岁的”+name+“同学,学习了英语,学分增加了2分,现在是”+score);
}
}
//主方法

	public static void main(String[] args){
		//实例化对象并给学生对象赋值
		students stuW = new students();
		stuW.school="某某中学";
		stuW.name="王";
		stuW.studyMath();
		stuW.studyEnglish();
	}

	
}

在这里插入图片描述
2. 3D画板
使用drawLine来画一个15*15的五子棋盘
使用fillOval来画一个立体的棋子
试图在画板上画出一个鸡蛋。
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;

// JFrame 窗体

public class Pad3D extends JFrame{
	
	public  void showJFrame() {
		this.setTitle("3D 画板 ");
		this.setSize(800, 600);
		this.setVisible(true);//可视化
	}
	
	public static void main(String []args) {
		//实例化对象
		Pad3D   pad3d = new Pad3D();
		pad3d.showJFrame();
	}
	
	
	//笔  Graphics 
	public void paint(Graphics gr) {
		super.paint(gr);
	
		
		for(int i=0;i<15;i++){
			gr.setColor(new Color(200,100,250));
			gr.drawLine(50, 50+i*50, 750, 50+i*50);
			gr.drawLine(50+i*50, 50, 50+i*50, 750);
			
		    gr.drawRect(50, 50, 0, 0);
		}
		for(int i=0;i<50;i++){
			gr.setColor(new Color(i*5,100,100));
			gr.fillOval(125+i/2, 125+i/2, 50-i, 50-i);
		}
		for(int i=0;i<100;i++){
			gr.setColor(new Color(i*5,100,100));
			gr.fillOval(325+i/2, 325+i/2, 60-i, 100-i);
			gr.fillOval(320+i/2, 330+i/2, 70-i, 100-i);
		}
	}
}

在这里插入图片描述

  1. 写一个回合制游戏
    步骤:
    类: 奥特曼 小怪兽
    属性: name hp ad
    方法: ackA(参数类型 参数变量名){ 使对方的血量值减少自己的ad值 }

    		主战场类: 带有程序的主方法  在主方法中实例化两个英雄类对象,并使用对象调用属性来赋值。
    					赋值之后,来循环PK
    

哥斯拉:
public class XGS {
String name;
int hp;
int ad;
public void ackA(ATM atm){
atm.hp-=ad;
System.out.println(name+“攻击了”+atm.name+",使其失去了"+ad+“点血量值。其还剩下”+atm.hp+“点血量值。”);
}
public void ackA(DHD dhd){
dhd.hp-=ad;
System.out.println(name+“攻击了”+dhd.name+",使其失去了"+ad+“点血量值。其还剩下”+dhd.hp+“点血量值。”);
}

}

奥特曼:
public class ATM {
String name;
int hp;
int ad;
public void ackA(XGS xgs){
xgs.hp-=ad;
System.out.println(name+“攻击了”+xgs.name+",使其失去了"+ad+“点血量值。其还剩下”+xgs.hp+“点血量值。”);

}
public void ackA(DHD dhd){
dhd.hp-=ad;
System.out.println(name+“攻击了”+dhd.name+",使其失去了"+ad+“点血量值。其还剩下”+dhd.hp+“点血量值。”);
}

}

大混蛋:
public class DHD {
String name;
int hp;
int ad;
public void ackA(ATM atm){
atm.hp-=ad;
System.out.println(name+“攻击了”+atm.name+",使其失去了"+ad+“点血量值。其还剩下”+atm.hp+“点血量值。”);
}
public void ackA(XGS xgs){
xgs.hp-=ad;
System.out.println(name+“攻击了”+xgs.name+",使其失去了"+ad+“点血量值。其还剩下”+xgs.hp+“点血量值。”);
}

}

主战场:

public class Manage {
public static void main(String[]args){
ATM atm=new ATM();
atm.name="【迪迦】";
atm.hp=5000;
atm.ad=600;
XGS xgs=new XGS();
xgs.name="【哥斯拉】";
xgs.hp=8000;
xgs.ad=300;
ZZH zzh=new ZZH();
zzh.name="【大混蛋】";
zzh.hp=8000;
zzh.ad=300;
while(atm.hp>0&&xgs.hp>0){
atm.ackA(xgs);
if(xgs.hp>0)
{xgs.ackA(atm);}
}
if(atm.hp>0)
{

			while(atm.hp>0&&zzh.hp>0){
				atm.ackA(zzh);
	           if(zzh.hp>0){
				zzh.ackA(atm);
	           }
			}
		
	if(zzh.hp<=0){
		System.out.println(atm.name+"胜利了");
	}
	else{
		System.out.println(zzh.name+"胜利了");
	}
}
	if(xgs.hp>0)
	{
		
			
			while(xgs.hp>0&&zzh.hp>0){
				xgs.ackA(zzh);
	           if(zzh.hp>0){
				zzh.ackA(xgs);
	           }
			}
		
	if(zzh.hp<=0){
		System.out.println(xgs.name+"胜利了");
	}
	else{
		System.out.println(zzh.name+"胜利了");
	}
}

}
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值