java编程学习日志 第一课:小白的奋斗之路

今天我们学习了java类的概念、对象、继承、方法重写、对象的特性

1.类的概念

类的概念:对实体的共同点,共同点包括属性、行为的集合

对象:就是生活中看得见摸得着的实体

具体的一个对象和类的关系:具体和抽象的关系

类有普通类、接口类、抽象类

普通类:有抽象类和接口类,可以创建对象

抽象类:

    1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。

  2)抽象类不能用来创建对象;

  3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。


接口类:接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处

public void liuguang(){

}

返回类型:表示的是当前这个行为执行结果

参数类型:表示的是当前这个行为条件

大括号中:表示的是当前这个行为过程

属性的定义格式:public 类型 属性名

方法的定义格式:public 返回类型 方法名(参数类型,参数名){}

2.继承

java类的继承主要通过extends关键字来完成的。一旦继承后,子类将获得父类的成员属性跟成员方法。基本语法:

class类名extends父类名

例如:

  说明:在java中只允许单继承,而不允许多重继承,也就是说一个子类只能有一个父类,但是java中却允许多层继承比如:Pear可以继承Fruit,那么p又可以继承Pearjavasuper关键字super主要的功能是完成子类调用父类中的内容,也就是调用父类中的属性或方法,这里注意区分this关键字基本结构:

super.属性名(都是指父类的)

super.方法名(都是指父类的)

  例如:

Fruit.java

public class Fruit

{

String name;

public void getColor(String color)

{

System.out.println("该水果的颜色是:"+color);

}

}

Pear.java

public class Pear extends Fruit

{

public Pear()

{

super.name="liuguang"; //调用父类的name属性并赋值。

}

}

3.方法重写

java类的重写:一旦子类继承了父类,那么连其中的方法也相应的继承过来了,但是有由于每个子类又具备自己的个性,那里这里就涉及到java类的重写了当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法复写了父类中的方法例如:

Fruit.java

public class Fruit

{

String name;

public void getColor(String color)

{

System.out.println("该水果的颜色是:"+color);

}

}

Pear.java

public class Pear extends Fruit

{

public Pear()

{

super.name="liuguang"; //调用父类的name属性并赋值。

}

//对父类方法的重写

public void getColor(String color)

{

System.out.println("这里是子类中的方法,我将其内容进行重写了");

}

4.方法重载

它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 
public class DrawListener implements MouseListener{
	public ButtonGroup j;
	//通过重载构造方法 
	public DrawListener(Graphics g){
		s = (Graphics2D)g ;
		j = bg;


对象的特性有封装性、继承性、多态性

4.组件有容器组和非容器组件

容器组件:组件上可以继续放置组件容器。组件有JFrame、JPanel、JDialog三个

javax.swing.JFrame

javax.swing.JPanel

javax.swing.JDialog

非容器组件:功能性组件,组件上不可以在放置组件。组件有JButton、JLabel、JtextField

布局有流式布局、边框布局、网格布局,绝对布局四种

流式布局:FowLayout后面可以设置对齐方式、横向和纵向的间隔

参数设置:第一个参数对齐方式(0(左)、1(中)、2(右))。第二个参数为横向间隙,取值为整数单位为像素,第三个参数为纵向间隙,取值为整数,单位为像素

package guiTest;
 
import java.awt.FlowLayout;
 
import javax.swing.JButton;
import javax.swing.JFrame;
 
public class FlowLayoutDemo {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JFrame f = new JFrame("流式布局FlowLayout");
        f.setLayout(new FlowLayout());
        for(int i=0;i<7;i++)
        {
            JButton btn=new JButton("Button"+i);
            f.add(btn);
        }
        f.setSize(300,250);
        //f.pack();默认边框设置宽度和长度刚刚好的样子
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
    }
 
}


边框布局:把容器划分为五个部分,每一个部分职能添加一个组件

package guiTest;
//JFrame默认的是边框布局BorderLayout
import java.awt.BorderLayout;
 
import javax.swing.JButton;
import javax.swing.JFrame;
 
public class BorderLayoutDemo {
    public static void main(String[] args) {
        JFrame f = new JFrame("边框布局BorderLayout");
        //JFrame的默认LayoutManager为BorderLayout
    //  f.setLayout(new BorderLayout());//可以不写,默认的就是流式布局
        JButton btn =  new JButton("北");
        f.add(btn,BorderLayout.NORTH);
         
        btn=new JButton("南");
        f.add(btn,BorderLayout.SOUTH);
         
        btn=new JButton("东");
        f.add(btn,BorderLayout.EAST);
         
        btn=new JButton("西");
        f.add(btn,BorderLayout.WEST);
         
        btn=new JButton("中");
        f.add(btn,BorderLayout.CENTER);
         
        f.pack();//也可以用f.setSize(222,222);来进行设置
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
 
}


网格布局:GirdLayout后面可以自己设置几行几列的布局

package guiTest;
 
import java.awt.GridLayout;
 
import javax.swing.JButton;
import javax.swing.JFrame;
 
public class GirdLayoutDemo {
 
    public static void main(String[] args) {
        JFrame f = new JFrame("网格布局GirdLayout");
        //设置f的布局为3行3列的GirdLayout组件间水平与垂直间距为5
        f.setLayout(new GridLayout(3,3,5,5));
        for(int i=1;i<10;++i)
        {
            JButton btn = new JButton(String.valueOf(i));
            f.add(btn);
        }
        f.pack();
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         
    }
 
}
注意:默认的布局为流式布局
绝对布局
一个容器使用绝对布局的话,那么其中的组件要调用  
setBounds(int x,int y,int w,int h) 方法以确定在组件的显示位置,
  否则组件将不显示。

5.数组的使用

数组作用:用于存储一系列相同类型的数据

一维数组定义格式:类型[] 数组名 =new  类型[长度];

                  类型[] 数组名 = {值1,值2,值3,........};

  类型[] 数组名 = new 类型[]{值1,值2,值3,........};


6.单选按钮

 JRadioButton单选按钮,结合ButtonGroup按钮组来实现单选







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值