1.计算机语言的认识
(1)指导计算机做我们需要它完成的功能即为编程
(2)计算机能识别的语言:C,C++,Java,C#,object,PHP,javascript.等。
(Java语言是一种跨平台、适合于分布式计算的、面向对象的编程语言。)
2.面向对象
面向对象是一种编程语言的思想。
(1)类与对象
类:生活在一些对象的共同点的集合,主观的,以人的意识存在的
对象:生活中一个一个的实体,客观的
例如:小明老师正在给小花补课;
一件事=对象(执行者)+过程。
上述的例子中对象:小明老师—老师类
过程:给小花补课;
(2)面向对象与面向过程的区别
面向对象---关注对象(关注事情的执行者)->>结果不确定(比较灵活)
面向过程---关注过程(关注事情的流程)->>结果确定(比较死板)
3.继承与多态的相关知识点
(1)构造方法
构造方法与普通方法的区别:
普通方法格式:public 返回类型 方法名(参数列表){}
普通方法代码如下:
public void teach(){
System.out.println("上课1");
}
构造方法:public 类名 (参数列表){}
说明:构造方法的方法名必须与类名相同;
比如一个老师类的构造方法如下:
public class Teacher {
//构造方法
public Teacher(){
System.out.println("此无参构造方法被调用了");
}}
作用:构造对象
引用传递指的是对象的地址进行交换,交换地址之后会产生废弃的空间(无法调用),废弃空间将由java虚拟机回收机制回收。
例如:
Teacher tea = new Teacher("张三");
Teacher tea1 = new Teacher();
tea.name = "张三";
tea1.name = "李四";
tea = tea1;
tea1.name = "赵六";
System.out.println(tea.name);
System.out.println(tea1.name);
该代码的结果为:
李四
李四
tea=tea1;进行的是地址交换,所以之后的tea和tea1所指的地址是相同的,而原有的tea所指的空间则变为废弃的空间。
(2)方法重载
定义:同一个类中,多个方法的方法名相同,参数列表不同(参数个数,参数顺序,参数类型)的方法,则互为重载方法。
例:
public void teach(){
}
public void teach(int a){
}
public void teach(String a){
}
public void teach(String a,int b){
}
public void teach(int b,String a){
}
以上的几个方法互为重载方法。
构造函数也是一种方法所以构造方法也可以重载(创建一个对象,只能调用一个构造函数),主要用于初始化对象的属性。
(3)继承(子类与父类)
关键字:extends
定义:子类继承父类通过extends关键字实现,通过继承,子类可以继承父类的所有的非私有属性和方法。
作用:可以动态得进行拓展类的功能
例:
public class D {
public String a;
public void t(){
System.out.println("测试");
}
}
public class B extends D{
}
上述代码中B类继承了D类,即B类拥有D类中的非私有属性和方法。
(4)方法重写
定义:子类中重写父类的方法。特别注意的是子类中方法名,参数,返回类型必须与父类中的相同。
子类中重新父类方法可以覆盖父类继承过来的函数。
例;
public class D {
public String a;
public void t(){
System.out.println("测试");
}
}
public class A extends D{
public String c;
/**
* 子类重写父类的方法
*/
public void t(){
System.out.println("测试!!!");
}
public void test(){
}
}
以上例子中:A类继承了D类,在A类中重新了从D中继承的函数。
如果分别调用A和D中的方法则结果是不同的,结果应为:
“测试
测试!!!”
(5)自动转型
子类类型的对象自动转型为父类类型的引用,最终是父类的类型
例如:D obj = new A();
特别注意的是:A必须是D的子类。
转型后对象调用的方法:如果子类重写父类的方法则调用重写后的方法,如果没有被重新,则调用父类自己的方法。
(6)多态
含义:多个同一个类型的引用,调用同一方法,而执行的流程不同即为多态。
4.简单的实例
计算机一些简单操作的实现(比如:关机,打开浏览器,运行QQ等)
总共有以下几步:
(1).实现界面
即计算机操作的界面,有一个FRame窗体和三个功能按钮实现(如图所示)
(2).实现按钮的监听功能
(3).完成按钮上的操作(实现效果如图)
代码如下:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
public class ComputerOperationFrame extends JFrame {
{
ComputerOperationFrame cof=new ComputerOperationFrame();
cof.test();
}
public void test(){//创建一个窗体对象
//3.设置窗体标题
this.setTitle("电脑操作界面");
//4.设置界面大小
this.setSize(300,300);
//5.设置窗体位置
this.setLocationRelativeTo(null);
//6.设置窗体默认关闭方式
this.setDefaultCloseOperation(1);
//设置窗体布局
FlowLayout f1=new FlowLayout();
this.setLayout(f1);
//7.添加按钮
final JButton jb1=new JButton();
jb1.setText("关机");
this.add(jb1);
JButton jb2=new JButton();
jb2.setText("打开浏览器");
this.add(jb2);
JButton jb3=new JButton();
jb3.setText("运行QQ");
this.add(jb3);
//2.设置窗体可见
this.setVisible(true);
//添加监听器
ActionListener action=new ActionListener()
{
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//监听过程,获取文本
String str=e.getActionCommand();
if("关机".equals(str))
{//获取系统操作对象
Runtime run=Runtime.getRuntime();
try {
run.exec("shutdown -s -t 10000");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//修改按钮文字
jb1.setText("取消关机");
}
else if("打开浏览器".equals(str))
{
Runtime run=Runtime.getRuntime();
try {
run.exec("E:/YYExplorer/YYExplorer.exe --run-source-type=DesktopIcon ");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
else if("运行QQ".equals(str))
{
Runtime run=Runtime.getRuntime();
try {
run.exec("F:/软件/bin/QQScLauncher.exe");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
else if("取消关机".equals(str))
{//获取系统操作对象
Runtime run=Runtime.getRuntime();
try {
run.exec("shutdown -a");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//修改按钮文字
jb1.setText("关机");
}
}
};
jb1.addActionListener(action);
jb2.addActionListener(action);
jb3.addActionListener(action);
}
}