您的位置:首页 > 编程语言 > Java开发

java入门基础及简单登录界面的实现

2017-11-11 19:26 435 查看
什么是类,什么是对象

类是具有一些相同属性或行为的事物形成的集合。也就是按照某些固定的特征划分在一起的一伙个体,称为一类事物。如人类,植物类,电器类……

对象是某个类的一个具体的个体,具有确定性。如张三这个人,这个红色的杯子……

什么是面向对象?什么是面向过程?

面向找同义词,关注,研究。顾名思义,面向对象就是关注、研究对象,侧重点在对象上,关注事情的执行者是谁。同理面向过程侧重点在过程上,关注事
cceb
情的执行流程是怎么样的。

OOP编程

语法:

1、一个java文件就是一个类定义

2、定义类的格式:public class 类名{}

3、Java中定义属性:public 属性类型 属性名;

4、Java中定义行为:public 返回类型 方法名(){}

行为三要素:前提(条件)+过程+结果 (被操作者+操作过程+结果)

方法三要素:参数+大括号中内容+返回值

5、主函数:整个程序的入口,用于启动程序

一般我们会独立建立一个类,来运行主函数

6、实例化对象:类名 对象名 = new 类名();

7、对象调用属性:对象名.属性名

8、对象调用行为:对象名.方法名();

Java面向对象编程的三大特性:

继承性、多态性、封装性

封装性:一个方法只做一件事情

工具的使用:

Eclipse:继承开发工具

开发步骤:1)启动工具

2)加载指定的目录(一定要记住)

3)新建工程

4)工程的src下新建package(包:把一些相似功能的代码进行封装)

5)新建class类(class类就是java文件)

构造函数

定义:构造当前类对象的一种行为

格式:public 类名(){}

注意:任何一个类都有构造函数,只是有时候不写

特殊点:

1、不写也会存在

2、作用:用于构造当前类的对象、初始化当前对象的一些基本属性

3、有没有返回值?执行时间:创建当前类对象的时候,有返回值(地址)

补充:引用传递(引用指的就是变量) 把一个引用的地址传递给了另外一个引用

丢失的对象引用:java垃圾清理机制会定期扫描堆空间,清理没有引用的对象

方法重载

方法重载: 同一个类中,多个方法的方法名相同

参数列表(参数个数、参数顺序、参数类型)不同的方法互为重载方法

方法重载意义:在一个类中,提供做同一件事情的不同行为过程

构造方法也是可以重载的

注意:1、构造方法重载目的:提供更多的构造当前类对象的方式,最终目标都是创建对象

2、构造方法重载了,则默认的无参构造方法则没有了

任何一个类,至少会有一个构造方法,但是一旦重载,则默认的不存在了,如果还需要默认的那个,则需要显性的定义出来

public class Student{
public Student(){
System.out.println("调用无参构造方法");
}
public Student(String s){
System.out.println("调用带参数的构造方法");
}
}


继承

继承:类与类之间的继承,可以直接从一个类中获取到当前类的所有属性和方法

关键字:extends

格式:public class 子类类名 extends 父类类名{}

注意:

父类的构造方法是不能被继承

父类的私有属性和方法不能被继承

继承是单继承的,但是可以多层继承

public class A{
public void say(){
System.out.println("Hello!");
}
}
public class B extends A{}


如上代码,主函数可以直接调用B中从A中继承的say方法

方法重写

方法:子类重写父类的方法(子类可以覆盖从父类继承过来的方法)

条件:子类的方法和父类方法:方法名相同、参数列表也相同、返回类型相同

意义:子类修改父类的方法执行过程

public class A{
public void say(){
System.out.println("Hello!");
}
}
public class B extends A{
public void say(){
System.out.println("Hello World!");
}
}


如上所示,如果调用B中的say方法,则是B中改写过的say方法,而不是被覆盖掉的从A中继承来的say方法。

继承:

1、自动转型

i.定义:创建对象的时候,子类的对象可以自动转型为父类的类型

ii.格式:父类类名 对象名 = new 子类类名();

iii.强制转型:子类类型 对象名= (子类类型)父类对象;

iv.自动转型后的对象是什么类型?

1.自动转型后的对象是转型后的父类类型

2.调用方法:如果子类重写了父类的方法,则执行重写后的,如果没有重写,则执行父类的

2、多态:多个同一个类型的对象,调用同一个方法的时候,执行过程不一样

总结:

多态性->方法重写+自动转型->继承

this:这个(当前类对象)

1)看this在哪个方法中用 2)找到调用这个方法的对象 3)this==调用方法的对象

方法分类:普通函数、构造函数、抽象方法

普通方法:public 返回类型 方法名(){}

构造方法:public 类名(){}

抽象方法:public abstract 返回类型 方法名();(说明:没有方法体的方法)

类的分类:普通类、抽象类、接口

普通类:public class 类名{}

类中可以有构造方法、普通方法,不能有抽象方法,可以有常量和变量,可以直接建立对象

抽象类:public abstract class 类名{}

类中可以有构造方法、普通方法,抽象方法,可以有常量和变量,但不能建立对象

接口:public interface 类名{}

类中只能有抽象方法,只能有常量,不能建立对象

定义类的目的:创建对象,并提供方法调用

抽象类和接口:当父类用的,约束子类方法的定义

接口继承(implements)

接口作用:当作父类来使用,约束子类的方法定义

如何完成:父类的抽象方法,在子类中必须全部做重写操作

extends和implements这个两个关键字都是实现继承

extends的父类只能是:抽象类和普通类

implements的父类只能是:接口

界面编程入门(编写qq登录界面)

**

1、先实现一个窗体(设置窗体的相应属性)

2、往窗体上添加组件(设置组件相应的属性并加到组件上)

系统类:javax.swing.JFrame

javax.swing.JLabel

javax.swing.JButton

javax.swing.ImageIcon

javax.swing.JCheckBox

javax.swing.JTextField

方法:

setSize设置大小

setTitle设置标题

setLocationRelativeTo设置位置居中

setDefautlCloseOperation设置关闭方式

setText设置文本

setBounds设置定位

setLayout设置布局

setVisible设置可见

setIcon设置图片

类名定义的规律:驼峰式 定义类名/方法名 切勿随意:顾名思义

定义类:类名每个单词首字母全部大写

定义函数/属性:除了第一个单词的首字母小写,其他的全部大写

import javax.swing.*;
import java.awt.*;

public class Text{

public static void main(String[] args)
{
//定义一个窗体
JFrame jf=new JFrame();
//给窗体定义标题
jf.setTitle("qq登陆界面");
//设置窗体大小
jf.setSize(428,365);
//设置窗体关闭方式
jf.setDefaultCloseOperation(3);
//设置窗体标题栏不显示
jf.setUndecorated(true);
//设置窗体居中显示
jf.setLocationRelativeTo(null);
//清空窗体布局
jf.setLayout(null);

//定义标签
JLabel lab=new JLabel();
//定义图片并插入图片
ImageIcon imag=new ImageIcon("lesson01/image/head.gif");
//将图片添加到标签上
lab.setIcon(imag);
//设置标签大小及位置
lab.setBounds(0,0,428,174);
//将标签添加到窗体上
jf.add(lab);

JLabel lab_1=new JLabel();
ImageIcon imag_1=new ImageIcon("lesson01/image/img.jpg");
lab_1.setIcon(imag_1);
lab_1.setBounds(30,190,80,80);
jf.add(lab_1);

//定义文本框
JTextField jtf=new JTextField();
//设置文本框大小及位置
jtf.setBounds(130,200,197,30);
//将文本框添加到窗体
jf.add(jtf);
JTextField jtf_1=new JTextField();
jtf_1.setBounds(130,231,197,30);
jf.add(jtf_1);

//定义文本域
JTextArea jta=new JTextArea();
//为文本域设置文本
jta.setText("注册账号");
//设置文本域大小及位置
jta.setBounds(330,200,60,27);
//将文本域添加到窗体
jf.add(jta);
JTextArea jta_1=new JTextArea();
jta_1.setText("找回密码");
jta_1.setBounds(330,232,60,27);
jf.add(jta_1);

//定义复选框
JCheckBox jcb=new JCheckBox();
//设置复选框文本
jcb.setText("记住密码");
//设置复选框大小及位置
jcb.setBounds(130,260,90,30);
//将复选框添加到窗体
jf.add(jcb);
JCheckBox jcb_1=new JCheckBox();
jcb_1.setText("记住密码");
jcb_1.setBounds(250,260,90,30);
jf.add(jcb_1);

//定义按钮
JButton jb=new JButton();
//为按钮设置文本
jb.setText("登录");
//设置按钮大小及位置
jb.setBounds(110,300,243,37);
//设置按钮背景色
jb.setBackground(Color.blue);
//将按钮添加到窗体
jf.add(jb);

//设置窗体可见
jf.setVisible(true);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息