- 对象和类
类是用于创建对象的模板。使用同一个类创建的每个对象都具有相似的特性。
类包含一组特定对象的所有特征。使用面向对象语言编写程序时,并不定义各个对象,而是定义用于创建这些对象的类。编写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);
}
}
}
-
写一个回合制游戏
步骤:
类: 奥特曼 小怪兽
属性: 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+"胜利了");
}
}
}
}