Day12_06

作者: yangyangyjj | 来源:发表于2016-12-06 22:33 被阅读0次

二维数组的应用

package Day12_06_01;
//二维数组
public class Text1 {
    public static void main(String[] args) {
/*      int[][] scores=new int[5][3];
        for(int i=0;i<scores.length;i++){
            for(int j=0;j<scores[i].length;j++){
                scores[i][j]=(int)(Math.random()*101);
            }
        }
*/




//杨辉三角
        int[][] yh =new int[10][];
        for(int i=0;i<yh.length;i++){
            yh[i]=new int[i+1];
            for(int j=0;j<yh[i].length;j++){
                if(j==0||j==i){
                    yh[i][j]=1;
                }
                else{
                    yh[i][j]=yh[i-1][j]+yh[i-1][j-1];
                }
                System.out.print(yh[i][j]+"\t");
            }
            System.out.println();
        }
    }
}

面向对象

相关概念:

  • 一.对象:
    1.可以接收消息的实体;
    2.都具有属性和行为;
    3.每个对象都是独一无二的;
    4对象都是属于某个类;
  • 二 类:创造对象的模版;
  • 三 消息:对象通过消息进行交流

步骤:

  • 1.创造类;
  • 2.创造对象---new 构造器();
  • 3.给对象发消息;
package Day12_06_01;

public class Text2 {
    public static void main(String[] args) {
        //面向对象的第二步:创造对象---new 构造器()
        Stu stu1=new Stu("王焕琪",17);
        //第三步:给对象发消息
        stu1.study();
        stu1.play("打豆豆");
        stu1.watchJanpaneseAV();
        
        
        Stu stu2=new Stu("王大锤", 37);
        stu2.play("lol");
        stu2.study();
        stu2.watchJanpaneseAV();
    }
}



//面向对象的第一步:创造类
class Stu{
    //数据抽象-属性(名次)
    //行为抽象-方法(动词)
    private String name;
    private int age;
    //构造器(构造方法)---方法名与类名完全相等
    public Stu(String name,int age){
        this.name=name;
        this.age=age;
    }

    public void play(String gameName){
        System.out.println(name+"正在玩"+gameName+".");
    }
    public void study(){ 
        System.out.println(name+"正在学习");
    }
    public void watchJanpaneseAV(){
        if(age>=18){
            System.out.println(name+"正在看岛国爱情动作片!");
        }
        else{
            System.out.println(name+"只能看熊出没!");
        }
    }
}

案例

  • 写代码的终极原则:高内聚,低耦合
  • 如果定义类的时候没有写任何一个构造器,那么系统会自动定义一个隐式的构造器
  • 构造器的重载:
    如果创建对象的时候传了三个参数调用上个构造器;如果没有参数,调用下面一个构造器
package Day12_06_02;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class Clock
{
    private int hour;
    private int minute;
    private int second;
    
    //如果定义类的时候没有写任何一个构造器,那么系统会自动定义一个隐式的构造器
    //public Clock(){}
    public Clock(int hour, int minute, int second)
    {
        this.hour = hour;
        this.minute = minute;
        this.second = second;
    }
    public Clock()
    {
        /*Calendar calendar=new GregorianCalendar();
        this.hour=calendar.get(Calendar.HOUR_OF_DAY);
        this.minute=calendar.get(Calendar.MINUTE);
        this.second=calendar.get(Calendar.SECOND);
        */
        LocalDateTime time = LocalDateTime.now();
        this.hour=time.getHour();
        this.minute=time.getMinute();
        this.second=time.getSecond();
    }

    public String display()
    {   //这样写就跟控制台紧紧耦合在了一起(只能在控制台用)
        //System.out.printf("%02d:%02d:%02d\n", hour, minute, second);
        return String.format("%02d:%02d:%02d", hour, minute, second);
    }

    public void run()
    {
        second++;
        if (second == 60)
        {
            second = 0;
            minute += 1;
        }
        if (minute == 60)
        {
            minute = 0;
            hour += 1;
        }
        if (hour == 24)
        {
            hour = 0;
        }
    }
}



package Day12_06_02;

public class Text1
{
    public static void main(String[] args)
    {
        Clock clock=new Clock();
        clock.display();
        while (true)
        {
            try
            {
                Thread.sleep(1000);
            } catch (InterruptedException e)
            {
                
                e.printStackTrace();
            }
            clock.run();
            System.out.println(clock.display());
            
        }
    }
}

创建一个简单的窗口

package Day12_06_02;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Text2
{
    public static void main(String[] args)
    {
        JFrame jf =new JFrame("我的窗口");
        //设置窗体大小
        jf.setSize(400, 300);
        //将窗口位置放在屏幕中央
        jf.setLocationRelativeTo(null);
        
        Clock clock=new Clock();
        JLabel label=new JLabel(clock.display());
        Font font=new Font("微软雅黑",Font.BOLD , 36);
        label.setFont(font);
        label.setHorizontalAlignment(JLabel.CENTER);
        jf.add(label);
        
        
        jf.setVisible(true);
        //关闭窗口既退出程序
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

相关文章

  • Day12_06

    二维数组的应用 面向对象 相关概念: 一.对象:1.可以接收消息的实体;2.都具有属性和行为;3.每个对象都是独一...

网友评论

      本文标题:Day12_06

      本文链接:https://www.haomeiwen.com/subject/ohzrmttx.html