JAVA编程思维
1.了解面向对象
分类: 先通过功能和属性角度分类
001 干什么/ 002 用在哪
分析之后再分类:先通过功能和属性角度分类
2.新建程序
2.1新建一个项目
file→new→project→Java Project→Project name [不能有@和_以外的特殊字符及中文]
若界面上无大纲视图,可以通过顶部window→Show View→Project Explorer打开
2.2新建一个包
在此基础上,分成几个模块(包)
右键src→new package(包名首字母小写)→finish
2.3新建一个类
再模块的基础上,将模块分成类(class)
右键package→new class(首字母大写)→选择需要的选项(superclass/Interface)→finish
3.类的组成
类 ,指的是一类事物,事物的描述从哪个方向: 属性和功能
属性: 成员变量(也成为类的成员变量)
如何定义属性
//①修饰词 数据类型 变量名 = 值 ;
//②修饰词 数据类型 变量名 ;
1)修饰词: 权限修饰词(final/static等)
final , 最终的,修饰属性时表示属性不可变(对象名只能用大写);
2)数据类型: 数据的类型及范围
名称 | 类型 | 备注 |
---|---|---|
String | 字符串类型 | 对应的数据需要用双引号引起来 |
int | 整数类型 | 整数常用的类型,父类是Integer,取值范围为约为±21亿 |
double | 浮点数类型(小数类型) | 双精度浮点数,小数常用的类型 |
3)变量名命名规范:
1.字母/数字/下划线( _ )/美元符( $ )
2.不能以数字开头
3.不能使用关键字和保留字
4.尽量见名知意
⑤.驼峰命名法(多个单词时,单词首字母大写)
例:userName
4.类的方法的理解及概念
4.1 概念
方法: 方法也就是功能,也成为成员方法,是类的组成部分
4.2认识主方法(特殊的方法)
public static void main(String[] args) {
//TODO
}
功能: 程序运行的入口,不属于某个类特有的,所以不能称为成员方法
语句 | public | static | void | main | ( String[] args ) | { //TODO } |
---|---|---|---|---|---|---|
作用 | 权限修饰词 | 静态修饰词 | 返回值类型 | 方法名 | 方法参数 | 方法内容 |
释义 | 公开的 | 静态 | 无(空)返回值 | 方法 | 字符串 变量 | 方法体 |
4.3返回值类型
方法执行完后,向方法体外返回的值的类型,若没有返回的值,用void表示即可
返回关键词: return
4.4参数
参数 分为形式参数和实际参数
形式参数: 定义方法时的参数,写在小括号()内
**定义:**数据类型 参数1 ,数据类型 参数2 …
例如:public void meth( int i , int k ){
}//int i , int k 为参数
实际参数: 在使用方法时,传入的参数值
例如:public doublr meth(int i){
return Math.PI * i * i ;
}//PI 为传入的参数值
4.5static修饰方法
static 静态的
定义方法时,表示这个方法是属于类的,可以直接以类名来调用
例如:
package my;
public class TestA {
//定义非静态方法f,无返回值类型
public void method1() {
System.out.println("一个方法_from-TestA");
}
}
package my;
public class TestB {
static TestA obj =new TestA();
static void method1() {
System.out.println("一个静态方法_from-TestB");
}
public static void main(String[] args) {
TestB.obj.method1();//通过类名进行调用其静态方法
TestB.method1();//本地重名的静态方法不受冲突
}
}
输出结果为:
//一个方法_from-TestA
//一个静态方法_from-TestB
5.对象的定义
5.1什么是对象?
对象: 更多时候指的是类的具体事物(在程序中,万物皆对象)
例如:程序员与张三,程序员是一类事物,张三就是这类事物的对象
英雄是一类事物,吕布是这类事物的对象
5.2对象的定义
类名 对象名 = new 类名();
5.3使用属性
对象名.属性
6.方法的重载(Overload)
定义: 在定义方法时,参数列表不一样,方法名一样
参数列表: 参数的个数/参数的顺序/参数的类型(只要有一个不同,则不同)
在调用时,会根据实际参数的类型,选择对应的方法运行
例如:
package my;
public class TestAnd {
//方法1,全整数求和
public void add(int num1 , int num2) {
System.out.println(num1+num2);
}
//方法2,全小数求和
public void add(double num1 , double num2) {
System.out.println(num1+num2);
}
//方法3,前整数,后小数求和
public void add(int num1 , double num2) {
System.out.println(num1+num2);
}
//方法4,前小数,后整数求和
public void add(double num1 , int num2) {
System.out.println(num1+num2);
}
}
方法调用:
package my;
public class TestMainMethod {
public static void main(String[] args) {
TestAnd a = new TestAnd() ;
a.add(1, 1.2);//自动选择方法3---输出结果为2.2
a.add(4, 2);//自动选择方法1---输出结果为6
}
}
7.构造方法
构造方法: 专用于创建对象,创建类时,java自动在底层创建空的构造方法
若自己定义了构造方法,则覆盖默认构造方法(建议:在重重载造方法时,建议先把默认构造方法写出来)
package my;
public class Cons {
// 默认构造方法
public Cons() {
System.out.println("构造方法");
}
}
在调用时,语句会被输出:
package my;
public class TestMainMethod {
public static void main(String[] args) {
Cons obj = new Cons();
}
}//输出结果为:构造方法
特点:
- 不能加static/final修饰词
- 不能加返回值类型
- 方法名和类名相同
- 在创建对象时,会自动调用构造方法
面试例题: this在构造方法中的作用是什么?
—表示当前对象,方便初始化
#拓展内容
1.创建一个windows窗口
package my;
//将负责界面的类JFrame导入
//import,即:导入
import javax.swing.JFrame;
public class TestGameFrame {
public static void main(String[] args) {
//新建JFrame类对象
JFrame frame = new JFrame() ;
//设置窗口宽高
frame.setSize(800, 500);
//设置显示窗口
frame.setVisible(true);
//让窗口在屏幕居中
frame.setLocationRelativeTo(null);
//设置窗口标题
frame.setTitle("测试窗口");
}
}