二维数组的应用
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);
}
}