一、Hello World!
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello world!");
}
}
观看上段代码,需要知道:
1、main()函数是Java 程序执行的起点,函数的代码是自上而下执行顺序;
2、Java语言是严格区分大小写的;
3、类class是Java程序的基本单元,每个Java程序都是从定义一个class类开始的,“先定义、再使用!”;
4、每一句语句必须使用英文逗号;结尾;
二、Java基本要素
类及对象、访问修饰符、方法及构造方法、变量、流程控制语句、关键字;
三大特性:封装、继承、多态;
三、非语法的潜规则
1、项目名和包名使用小写字母,类使用大驼峰命名法,方法和变量使用小驼峰命名法。(大驼峰即每个英文单词首字母大写,小驼峰即从第二个英文单词开始首字母大写,其余均小写)
举个栗子:
项目名:testng
包名:test
类:TestNG
方法:testNG();
变量:testExampleOne;
2、注释使用斜杠//单行注释或者/* 中间写注释*/多行注释
方法必须使用注释说明,交代干嘛的,作者是谁
3、代码必须要像一个人写的,得有代码可读性,而不是只为运行能跑
四、基本语法语句
1、类与对象:
类是抽象出来的一类事物 具有相同特征的集合,简言之就是抽象汇总的概念
对象是类的实例实体,比如现实世界中的人、狗…,
而类是对象的集合,引入类,是为了解决复用和标准的问题。
----基本语言结构:
1.1、定义类:
class 类名称{
数据类型 属性名(变量);
数据类型 属性名(变量);
//定义方法
public 返回值类型 方法名称(参数1,参数2…){
程序语句;
[return 表达式;]
}
}
声明并实例化对象:
类名称 对象名称 = new 类名称();
Class object=new Class();
一个类可以创建多个对象~
1.2、如何复用?
如何使用类中定义好的静态属性和动态方法呢
需要实例化类,通过对象来访问:
对象.属性 --表示调用类中的静态属性。
例:object.field;
对象.方法() --表示要调用类中的劢态方法。
例:object.method();
2、访问修饰符
有4个分别是:public、private、default、protected;
不同的修饰符限定了不同的访问范围,可用来修饰类及类的成员;
尊重最小最窄访问原则,静态属性建议用private ,公共方法用public;
类Class只能被修饰符public和default修饰
类成员(属性和方法)可被所有访问控制修饰符,即:private、protected、default、public
private:私有只能在被定义类的内部使用;
protected:相同包下的所有类,不同package下的所有子类
public:被public修饰的,可以在任何地方被访问到。
default:被default修饰的,能被同一个包(package)下的访问,不能被不同包下的访问。
2.1 小细节:
- 未使用任何修饰符的类,默认为default。
- 访问其它包中的类时,需要使用import关键字,把其它包中的类引入进来。
- 一个.java文件中只能有一个public类型的类class。
3、方法及构造方法
从上阅读,其实已知方法就是描述动态动作的。
方法是对象的动作行为,对象与对象之间是通过方法来交流的
3.1、定义方法
public 返回值类型 方法名称(数据类型 参数名,…){
程序语句; //方法体
[return 表达式;]
}
注意看上面,方法有2个元素,一是参数(方法名后)、二是返回值(retrun带的)
定义方法有3种类型,分别是:
1、定义无参数无返回值的方法;
无返回值时使用关键词:void 修饰
public void printInfo(){
System.out.println("这是定义无参数、无返回值方法");
}
2、定义有参数无返回值的方法;
public void printInfo(String name){
System.out.println("这是定义有参数:string类型的叫name的参数、无返回值方法");
}
3、定义有参数有返回值的方法;
public int sum(int a ,int b ){
System.out.println("这是定义有2个参数ab,有返回值的方法");
retrun a+b;
}
3.2、构造方法
构造方法其实就是初始化,是一个与类同名且没有返回值类型的方法,每个类默认有不带参数构造方法,就是不写构造方法但编译器会自动生成的,当然也可以自己定义构造方法。
构造方法的定义
class ClassName {
ClassName() {
//方法体语句
}
}
(未完待续。。。作者睡觉了)