学通Java的24堂课

1.JAVA_HOME只是为了保存安装路径,完全可以换成其他的,再使用%JAVA_HOME%引用,只不过第三方软件默认使用了JAVA_HOME
2.palette:调色板,又叫组件管理器
3.Jlabel只用于显示文字和图像,在界面设计器里其text属性是显示中文名字的;Variable显示当前的组件caption,也可以用英文设置。
4.单击窗体的标题栏选择整个窗体,其他部分只选择了内容面板;也可以在Structure里面直接选择相应的名字。

5.引入和管理库最好的是添加用户库,然后在工程上右键选择构建路径--添加库。

6.在一个工程里引用另一个工程的类,则右键--构建路径--配置构建路径--库--添加类文件夹(选择的是bin,不是src);还可以添加依赖项目,这样是引入了所有的claa和相关jar。

7.

 1 import java.util.Calendar;
 2 import java.util.Date;
 3
 4 public class Test1 {
 5
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         Date date = new Date();
 9         Calendar cal = Calendar.getInstance();
10         cal.setTime(date);
11         int c = cal.get(Calendar.DAY_OF_WEEK);
12         if(Calendar.MONDAY == c) {
13             System.out.println("星期一");
14         }else {
15             System.out.println("非星期一");
16         }
17         System.out.println(date);
18     }
19 }

8.重写Date类的toString

 1 package a;
 2
 3 import java.util.Calendar;
 4 import java.util.Date;
 5
 6 public class TestT extends Date{
 7
 8     private static final long serialVersionUID = 8025524497773683396L;
 9     static Date date= null;
10     public static void main(String[] args) {
11         date = new TestT();
12         System.out.println(date.toString());
13     }
14
15     @Override
16     public String toString(){
17         Calendar calendar = Calendar.getInstance();
18         calendar.setTime(new Date());
19         int day = calendar.get(Calendar.DAY_OF_WEEK);
20         String weekDay = "";
21         if(day==Calendar.SUNDAY){
22             weekDay = "星期天";
23         }else if(day==Calendar.SATURDAY){
24             weekDay = "星期六";
25         }
26         /*
27          * 因为要返回String类型,而Calendar.get返回的是int,我原来把其强转为String结果CE了,使用下面的方式就行了
28          * 另外calendar.get(Calendar.MONTH)返回的月份貌似少了一
29          */
30         return calendar.get(Calendar.YEAR)+":"+(calendar.get(Calendar.MONTH)+1) + ":" + calendar.get(Calendar.DAY_OF_MONTH) + ":" + weekDay;
31     }
32 }

9.提示框使用JOptionpane相关方法。
10.在Eclipse里只要保存后那么就自动生成了对应的class文件。
11.字母数字下划线或者$但不能以数字开头,不能有空格;所以user_name对,user name错。
12.全局变量又称为成员变量;局部变量可以和全局变量同名,此时全被屏蔽,不过可以使用this访问。

13.Arrays有静态方法fill(数组名,start,end,值),中间的两个参数可以不要;

14.当局部变量和成员变量同名时使用this访问成员变量。

15.import static java.lang.System.out;使用时直接out.println();提防含糊不清的命名static成员。例如,如果你对Integer类和Long类执行了静态导入,引用MAX_VALUE将导致一个编译器错误,因为Integer

和Long都有一个MAX_VALUE常量,并且Java不会知道你在引用哪个MAX_VALUE。 你可以在static对象引用、常量(记住,它们是static 或final)和static方法上进行静态导入。

16.static块在类加载时执行且仅执行一次,调用构造方法时先执行static块,不过再次调用就不执行了,一般用于初始化工作;主类里边main方法执行前也先要执行该静态代码块。

17.字符ASCII码转换器

  1 package a;
  2
  3 import java.awt.BorderLayout;
  4 import java.awt.EventQueue;
  5
  6 import javax.swing.JFrame;
  7 import javax.swing.JPanel;
  8 import javax.swing.border.EmptyBorder;
  9 import javax.swing.JToolBar;
 10 import javax.swing.JTextField;
 11 import javax.swing.JButton;
 12 import java.awt.event.ActionListener;
 13 import java.awt.event.ActionEvent;
 14 import javax.swing.JLabel;
 15 import java.awt.CardLayout;
 16 import java.awt.FlowLayout;
 17 import java.awt.event.MouseAdapter;
 18 import java.awt.event.MouseEvent;
 19
 20 public class Asc extends JFrame {
 21
 22     private JPanel contentPane;
 23     private JTextField textField;
 24     private JTextField textField_1;
 25
 26     /**
 27      * Launch the application.
 28      */
 29     public static void main(String[] args) {
 30         EventQueue.invokeLater(new Runnable() {
 31             public void run() {
 32                 try {
 33                     Asc frame = new Asc();
 34                     frame.setTitle("字符ASCII码转换器");
 35                     frame.setVisible(true);
 36                 } catch (Exception e) {
 37                     e.printStackTrace();
 38                 }
 39             }
 40         });
 41     }
 42
 43     /**
 44      * Create the frame.
 45      */
 46     public Asc() {
 47         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 48         setBounds(100, 100, 450, 300);
 49         contentPane = new JPanel();
 50         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
 51         contentPane.setLayout(new BorderLayout(0, 0));
 52         setContentPane(contentPane);
 53
 54         JPanel panel = new JPanel();
 55         contentPane.add(panel, BorderLayout.NORTH);
 56
 57         JLabel lblNewLabel = new JLabel("\u8F93\u5165\u5B57\u7B26\uFF1A");
 58         panel.add(lblNewLabel);
 59
 60         textField = new JTextField();
 61         panel.add(textField);
 62         textField.setColumns(10);
 63
 64         final JLabel lblNewLabel_2 = new JLabel("\u663E\u793A\u7ED3\u679C:");
 65         panel.add(lblNewLabel_2);
 66
 67         final JLabel lblNewLabel_3 = new JLabel("");
 68         panel.add(lblNewLabel_3);
 69
 70         JButton btnNewButton = new JButton("\u8F6C\u6362");
 71         btnNewButton.addMouseListener(new MouseAdapter() {
 72             @Override
 73             public void mouseClicked(MouseEvent arg0) {
 74                 String ascii = textField.getText();
 75                 // 返回 char 数组的给定索引上的代码点。
 76                 //字符串不能直接转换为char
 77                 char[] arr = ascii.toCharArray();
 78                 int i = (int)arr[0];
 79                 lblNewLabel_3.setText(""+i);
 80             }
 81         });
 82         panel.add(btnNewButton);
 83
 84         JPanel panel_1 = new JPanel();
 85         contentPane.add(panel_1, BorderLayout.CENTER);
 86         panel_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
 87
 88         final JLabel lblNewLabel_1 = new JLabel("\u8F93\u5165\u6570\u5B57\uFF1A");
 89         panel_1.add(lblNewLabel_1);
 90
 91         textField_1 = new JTextField();
 92         panel_1.add(textField_1);
 93         textField_1.setColumns(10);
 94
 95         JButton btnNewButton_1 = new JButton("\u8F6C\u6362");
 96
 97         btnNewButton_1.addActionListener(new ActionListener() {
 98             public void actionPerformed(ActionEvent arg0) {
 99
100             }
101         });
102
103         JLabel lblNewLabel_4 = new JLabel("\u663E\u793A\u7ED3\u679C:");
104         panel_1.add(lblNewLabel_4);
105
106         final JLabel lblNewLabel_5 = new JLabel("");
107         panel_1.add(lblNewLabel_5);
108         panel_1.add(btnNewButton_1);
109         btnNewButton_1.addMouseListener(new MouseAdapter() {
110             @Override
111             public void mouseClicked(MouseEvent arg0) {
112                 String ch = textField_1.getText();
113 //                char[] arr = ch.toCharArray();
114                 //不行因为,假如输入了89,那么arr[0]为8,arr[1]为9
115 //                System.out.println(arr[0]);
116 //                lblNewLabel_5.setText(""+(char)arr[0]);
117                 int i = Integer.parseInt(ch);
118                 lblNewLabel_5.setText(""+(char)i);
119
120             }
121         });
122     }
123
124 }

View Code

 

 

第二个界面是我做的,感觉没的一个做得好,视频上想换转换用的是Character类里的方法。我主要用了toCharArray和Integer.parseInt方法。

18.JButton和Button的区别:Button是在java.awt.*中的JButton是在javax.swing.*中的swing类是awt的一个扩展,它是由纯JAVA语言编写的,它有一个与平台无关的实现,而且具有一个艺术状态的属性集。

19.参数顺序不同但是参数类型顺序相同的话,不构成重载;参数顺序不同 且 参数类型顺序不同的话,也构成重载。在子类中扩展一个与父类同名不同参数的方法不叫重写,应该叫重载;不过也有人不同意,认为这样写能表达出所谓“重载”的意思,但是按照重载概念(重载是在同一个类中多态性的表现),似乎不符合。可以更深层的理解为,子类只是拥有了父类的这个方法(功能),而不是自己创建的功能

20.Java是强类型语言,也就是说使用之前需要先定义类型。最大值最小值分别通过包装类的MAX_VALUE和MIN_VALUE访问。

21.可以在静态代码块里记录该类有多少个实例对象。

22.Integer方法

toBinaryString(int i) 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。 static String toHexString(int i) 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。 static String toOctalString(int i) 以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。

23.String类的常用方法:length,indexOf,lastIndexOf,charAt,trim,substring,split,replace,toUpperCase和toLowerCase,startsWith和endsWith方法。

24.反转字符串:从最后再charAt逐个拼接(newStr="")。

25.String实例的toCharArray和split("")一样功能。

26.比较字符串内容equals或者equalsIgnoreCase;compareTo方法按字典序比较两个字符串。

27.使用DateFormat类来指定输出不同国家的日期。

28.统计汉字数目

29.textfield只有一行可写,textarea是一个区域,可以有很多行 ,都采用getText获取内容。

30.split方法可以限定拆分次数,比如“123,456,789”,若是直接split(",")则输出123,456,789;若是split(",",2),则输出123,"456,789"。

31.instanceOf操作符判断对象类型,防止ClassCastException。
32.java语言中任何一个类都是object的子类。

//equals方法原型
public boolean equals(Object obj) {
	return this==obj;
}

 


33.可以将接口看做是纯粹的抽象类,方法没有方法体。


34.

 

 

 

时间: 2024-10-15 17:44:12

学通Java的24堂课的相关文章

《21天学通Java(第6版)》—— 1.5 组织类和类行为

1.5 组织类和类行为 21天学通Java(第6版) Java面向对象编程还涉及另外三个概念:继承.接口和包,这些都是用于组织类和类行为的机制. 1.5.1 继承 继承是面向对象编程中最重要的概念之一,直接影响您如何设计和编写Java类. 继承是一种机制,让一个类能够继承另一个类的所有行为和属性. 通过继承,一个类可自动拥有现有类的所有功能,因此只需定义与现有类不同的地方. 通过继承,所有的类(无论是您创建的类,还是Java类库中的类)都以严格的层次结构来组织. 继承其他类的类叫子类,被继承的类

《21天学通Java(第6版)》—— 2.5 表达式和运算符

2.5 表达式和运算符 21天学通Java(第6版) 表达式是一条能够提供值的语句.最常见的是数学表达式,如下面的例子所示: 这3条语句都是表达式-它们提供了可被赋给变量的值.第1条语句将字面量3赋给变量x.第2条语句将变量x的值赋给变量y.在第3条语句中,乘法运算符*用来将x和y相乘,结果存储在变量z中. 表达式可以是任何变量.字面量和运算符的组合,也可以是方法调用,因为方法能够将一个值返回给调用它的类或对象. 您知道,表达式所提供的值称为返回值.在Java程序中,可将这个值赋给变量或以其他方

《21天学通Java(第6版)》—— 导读

前言 21天学通Java(第6版) 有些革命出其不意地吸引了全世界的眼球.Twitter.Linux操作系统和电视剧<Cupcake Wars>的异军突起颠覆了传统思维模式. 而Java语言的巨大成功却在人们的意料之中.自从Java语言于17年前面世以来,人们就对它充满殷切的期望.当Java融入到Web浏览器时,公众以无比的热情欢迎这种新语言的到来. Sun公司创始人Bill Joy在介绍这种新语言时,毫不掩饰其孤注一掷的心态:"15年来,我们一直力图开发出一种更佳的编程语言和环境,

《21天学通Java(第7版)》—— 2.2 变量和数据类型

2.2 变量和数据类型 在第1章创建的应用程序MarsRobot中,您使用变量来跟踪信息.变量是程序运行时能够存储信息的地方.可在程序的任何地方对其中的值进行修改--因此被称为变量. 要创建变量,必须提供名称并指定它存储的信息类型.还可以在创建变量的同时给它指定初始值. 在Java中,有3种变量:实例变量.类变量和局部变量. 正如第1章中指出的,实例变量用于定义对象的属性. 类变量定义类的属性,适用于类的所有实例. 局部变量用于方法定义乃至方法中更小的语句块中.仅当Java虚拟机执行这些方法或语

《21天学通Java(第6版)》—— 2.4 字面量

2.4 字面量 21天学通Java(第6版) 除变量外,还可以在Java语句中使用字面量.字面量可以是任何直接表示一个值的数字.文本或其他信息. 下面的赋值语句使用了字面量: 其中的字面量2012表示整数值2012.数字.字符和字符串都是字面量.Java有一些特殊类型的字面量,它们表示各种数字.字符.字符串和布尔值. 2.4.1 数字字面量 Java有几种整型字面量.例如,数字4是一个int类型的整型字面量,可将其赋给byte或short类型的变量,因为它足够小,在这些整数类型的取值范围内.位于

《21天学通Java(第6版)》—— 1.10 练习

1.10 练习 21天学通Java(第6版) 为巩固今天介绍的知识,请尝试完成下面的练习. 1.在VolcanoApplication类的main( )方法中,再创建一个名为virgil的VolcanoRobot对象,设置其实例变量,并将它们的值显示出来. 2.为国际象棋中的棋子创建一个继承层次结构,并决定在层次结构的什么位置定义实例变量color.startingPosition.forwardMovement和sideMovement.

《21天学通Java(第6版)》—— 1.4 属性和行为

1.4 属性和行为 21天学通Java(第6版)Java类包含两种不同的信息:属性和行为. 这两者在VolcanoRobot中都有,这是今天将作为类实现的项目.该项目使用计算机模拟火山探测工具,它模仿的是NASA的"遥控机器人研究"计划中用来在火山裂缝中进行研究探测的Dante II机器人. 创建该程序之前,您需要学习一些如何使用Java编写面向对象程序的知识.刚接触时,面向对象概念可能难以理解,但本书将给您提供大量将这些概念付诸实践的机会. 1.4.1 属性 属性(attribute

《21天学通Java(第6版)》—— 第 2 章 Java编程基础

第 2 章 Java编程基础 21天学通Java(第6版)Java程序是由类和对象组成的,而对象和类又是由方法和变量组成的.方法是由语句和表达式组成的,表达式又由运算符组成. 至此,您可能担心Java就像俄罗斯套娃.每个洋娃娃里边都有一个更小的洋娃娃,而后者同前者一样错综复杂. 本章将消除大洋娃娃的困扰,揭示Java编程的最小元素.本章暂时撇开类.对象和方法,介绍单行Java代码中的基本元素. 这包括以下内容: Java语句和表达式:变量和基本数据类型:常量:注释:字面量:算术运算符:比较运算符

《21天学通Java(第6版)》—— 1.7 问与答

1.7 问与答 21天学通Java(第6版)问:实际上,方法是在类中定义的函数.既然它们无论从外观和行为方面都类似于函数,为什么不将它们叫做函数呢? 答:有些面向对象编程语言确实将它们叫做函数(C++将它们叫做成员函数).其他一些面向对象语言将位于类(对象)内.外的函数区分开来,因为在这些语言中,使用不同的术语对理解每个函数的工作原理至关重要.因为其他语言有这种区别,同时术语"方法"在面向对象技术中很常用,所以Java也使用这个术语. 问:实例变量和实例方法同类变量和类方法之间有何区别