一、第一个Java程序
package Test;//包名
public class HelloWorld {
//class定义一个类,HelloWorld类名
//类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写
//一个Java定义公开的类,该类名称和源文件名称一致
//类体中不允许直接编写Java语句,声明变量除外
public static void main(String[] args) {//主方法,程序执行入口
//方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
System.out.println("Hello World"); //向控制台输出消息,换行
}
}
二、Java 标准输入输出
1.输入:
①使用支持各种类型数据输入的next方法:
可以从键盘中输入各种基本类型和字符的数据,Java从键盘接收数据都是以字符串的形式进行,next方法根据数据类型来选用。如果直接取得上一个字符串,以空格或者换行分隔,则使用next(),如果取得用户输入的整行文字,则使用nextLine(),以换行分隔。
java.util.Scanner的使用方法:
(1)首先要导入java.util.Scanner包 import java.util.Scanner;
或者写 import java.util.* ;
import java.util.* 中“*”表示UTIL下所有的类都可引用,
如果写util.Scanner只能引用Scanner的类;
(2)使用时使用下面的语句:Scanner sc=new Scanner(System.in);
(3)Scanner对象sc每个基本类型,都会有对应的方法,如sc.next()、sc.nextByte()、sc.nextShort()、sc.nextInt()、sc.nextLong()、sc.nextFloat()、sc.nextDouble()、sc.nextBoolean()等方法等。
实例:
package Test;//包名字
import java.util.Scanner;
public class InputExamples{//类名,与文件名称一致
public static void main (String[] args) {
int score;
String name;
Scanner sc = new Scanner (System.in);
System.out.println ("输入学生姓名:");
name = sc.next ( );//从键盘以字符串形式接收
// name = sc.nextLine ( );//可以接收空格
System.out.println ("输入学生成绩:");
score = sc.nextInt ( );
System.out.println(name+"的成绩为"+score);
}
}
注:如何输入一个字符
调用String的charAt(0)方法获取第一个字符
Scanner sc = new Scanner(System.in);
String s = sc.next();
char c = s.charAt(0);
②read方法
实例:
package Test;
import java.io.*;//引入Java包
//输入字符
public class ReadInput {
public static void main(String[] args)throws Exception{
//抛弃异常操作
char c,c1,c2;
System.out.println("请输入一个字符,按回车结束");
c=(char)System.in.read();//将int型强制转化为字符型
c1=(char)(c-1);
c2=(char)(c+1);
System.out.println("c1:"+c1);
System.out.println("c2:"+c2);
}
}
System.in.read()方法的功能比较单调,直接使用较少,通常使用Scanner类中的方法或者java.io包中的其他类与其配合使用。
2.输出:
(1)System.out.println(),其中out是静态输出流对象,与静态输入流对象in对应,只要程序进入运行状态,此流就已经打开准备输出,这是使用最多的一种方法,输出结束光标在下一行;
(2)printf(),可以格式输出,如用\n进行换行输出等;
(3)用“+”运算符连接多个输出项为一项进行输出。
三、方法
1.定义:
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
注意:
在一些其它语言中方法指过程和函数。一个返回非void类型返回值的方法称为函数;一个返回void类型返回值的方法叫做过程;
2.方法调用:
注意:
1.有static 调用:类名.方法名();(在当前类中可以省略 类名.);
2.main 方法的头部是不变的,带修饰符 public 和 static,返回 void 类型值,方法名字是 main,String[]表明参数是字符串数组;
3.方法调用时,才会在内存中分配空间,(只定义没有调用,不会分配空间)分配在栈中,方法调用为压栈,方法结束为弹栈。调用与书写顺序无关,先调用的最后结束
4.方法有返回值,但返回值可以不接收;返回值为void,使用return;可以终止方法执行。
3.方法重载:
重载条件:方法名相同,只出现在同一个类中,返回值类型可以不同,不依靠返回值类型来区分重载,方法重载与修饰符无关。
实例:
public class Main {
public static void main(String[] args) {
int sum1=add(1,2);
int sum2=add(1,2,3);
double sum3=add(1.2,2.3);
System.out.println("sum1="+sum1);
System.out.println("sum2="+sum2);
System.out.println("sum3="+sum3);
}
private static double add(double d, double e) {
return d+e;
}
private static int add(int i, int j, int k) {
return i+j+k;
}
private static int add(int i, int j) {
return i+j;
}
}
四、类
1.一个类可以包含以下类型变量:
(1)局部变量:在方法、构造方法、语句块中定义的变量。其声明和初始化在方法中实现,在方法结束后自动销毁
public class ClassName{
public void printNumber(){
int a;
}
// 其他代码
}
(2)成员变量:定义在类中,方法体之外。变量在创建对象时实例化。成员变量可被类中的方法、构造方法以及特定类的语句块访问。
public class ClassName{
int a;
public void printNumber(){
// 其他代码
}
}
(3)类变量:定义在类中,方法体之外,但必须要有 static 来声明变量类型。静态成员属于整个类,可通过对象名或类名来调用。
public class ClassName{
static int a;
public void printNumber(){
// 其他代码
}
}
2.类的构造方法
【修饰符列表】 构造方法名(形参列表){
方法体;
}
(1)构造方法的名字和类名相同,并且没有返回值。
(2)构造方法主要用于为类的对象定义初始化状态。
(3)我们不能直接调用构造方法,必须通过new关键字来自动调用,从而创建类的实例。 new 构造方法名();
(4)Java的类都要求有构造方法,如果没有定义构造方法,Java编译器会为我们提供一个缺省的构造方法,也就是不带参数的构造方法。
(5)构造方法可以构成重载。
new关键字的作用
(1)在堆中为对象分配内存空间。对象是具体的一个实例,如:new Student();
(2)引起对象构造方法的调用。
(3)为对象返回一个引用。
注:引用名称是存放的对象的地址。
五、对象
对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:
声明:声明一个对象,包括对象名称和对象类型。
实例化:使用关键字new来创建一个对象。
初始化:使用new创建对象时,会调用构造方法初始化对象。
下面是一个创建对象的例子:
public class Test{
public static void main ( String[] args ){
//创建对象
Student stu = new Student();
//Student 对象类型,存储在堆中
//局部变量stu为引用,以地址形式存储在栈中
//对成员变量进行赋值,没有手动赋值为默认值
//int 默认值0,String默认值null,boolean默认值为false
stu.id = 100;
stu.name = "张三";
stu.sex = true;
stu.add = "西安";
stu.age = 20;
//调用方法 : [引用.]
System.out.println ( "id="+stu.id );
System.out.println ( "name="+stu.name );
System.out.println ( "sex="+(stu.sex?"男":"女" ));
System.out.println ( "add="+stu.add );
System.out.println ( "age="+stu.age );
}
}
class Student{
int id;
String name;
boolean sex;
String add;
int age;
}
注:一个类可以存在多个对象
同markdown:https://www.zybuluo.com/YuWen/note/1222398