java开发

1.Java环境搭建并编写第一个程序 “hello world”

在工作区新建一个project,在src下面新建一个class(可以看成一个结构体),就可以开始编写代码了

Java的main不单单是main,在打出main之后按 alt+/ 后有提示回车之后出现这句,即为Java的main函数

public static void main(String[] args){
   

}
System.out.println("hello world");

这句为Java的printf输出模式

2.JavaSE、JavaEE、JavaME的区别

  • JavaSE:Java最标准的一些东西(比如C一开始的一些变量函数结构体这些)
  • JavaEE:多了一些接口,用来做服务器的(比如C用来做面向Linux的一些api接口等)
  • JavaME:多了一些接口,可以用来做手机程序的
  • JRE:支持Java程序运行的平台
  • JDK:Java语言的软件开发工具包,包含JRE

3.基本数据类型与C一致

System.out.println(“hello world”);

这里的 println 是带换行符的,语句里就不用再打\n

输出的时候打 Syso 再按 alt+/ 回车后就可以打出System.out.println();

		int a;
		a = 10;
		int b;
		b = 20;
		int c;
		c = a+b;
		//printf("%d",a);   使用 + 可以完成占位符的功能
		System.out.println("a="+a);
		System.out.println("b="+b);
		System.out.println(a + "+" + b + "=" + c);	

在Java里默认浮点数是double类型

若是float类型,可以使用强转 转换为float类

image-20221010192505221

4.选择控制语句无差别

public class Test {
   
	public static void main(String[] args) {
   
		int a = 1;
		if(a == 1){
   
			System.out.println("a=1");
		}else{
   
			System.out.println("a=110");
		}
		
		switch(a){
   
			case 1:
				System.out.println("这是1");
				break;
			case 2:
				System.out.println("这是110");
				break;
		}
	}
}

5.循环控制无差别


public class Test {
   
	public static void main(String[] args) {
   
		int i;
		for(i=0;i<20;i++){
   
			System.out.println("cwt");
		}
		while(i>0){
   
			System.out.println("cwt again");
			i--;
		}
	}
}

6.数组有细微差别

public class Test {
    
	public static void main(String[] args) {
    
		int a[] = {
    1,2,3};
		System.out.println(a[0]);
		System.out.println(a[1]);
		System.out.println(a[2]);
		
		//int a[3];
		int arry[] = new int[3];
	}
}

Java不能定义如 int a[3]; 这样的一个空数组,会报错,正确写法:int arry[] = new int[3];

但是可以这样定义 int a[] = {1,2,3}; 并且也能通过数组下标来访问

在定义的时候需要学会这样写:int[] testArry = new int[3]; 把中括号放在int后面更能强调他是个数组

		//int a[3];
		//int arry[] = new int[3];
		int arry[] = null;
		arry = new int[3];  //也可以通过这种方式定义

		int i;
		for(i=0;i<arry.length;i++){
    
			arry[i] = i;  //可以通过赋值方式给初值
		}
		for(i=0;i<arry.length;i++){
    
			System.out.println(arry[i]);
		}

值得注意的是,计算数组长度可以直接 .length 来获取,比较方便

7.函数有细微差别

Java的函数定义与C一样,但是不能像C那样直接调用:Test t = new Test(); t.myPrint();

如果要像C一样直接调用的话,需要在函数定义之前加一个static

public class Test {
   
	void myPrint()
	{
   
		System.out.println("cwt");
	}
	
	public static void main(String[] args) {
   
		Test t = new Test();  //像结构体一样,先定义之后再进行引用
		t.myPrint();  // 不能直接引用
	}
}

8.输入类Scanner

Java的输入类是使用 Scannner 控制的

import java.util.Scanner; //CTRL+shift+o;使用scanner必须要包含这个包

import java.util.Scanner;   //CTRL+shift+o;使用scanner必须要包含这个包

public class Test {
   
	public static void main(String[] args) {
   
		Scanner sc = new Scanner(System.in);  //构造方法
		int a;
		String str; 
		System.out.println("请输入一个整数");
		a = sc.nextInt();  //int:输入int型
		System.out.println("请输入一个字符串");
		str = sc.nextLine();  //吸收回车符
		str = sc.nextLine();
		System.out.println("a="+a);
		System.out.println("str="+str);
	}
}

9.封装类

Java面向对象的三大特性:继承封装与多态

封装概念:

  • 定义类,定义其属性、方法的过程称为封装
  • 将东西包在一起,然后以新的完整形式展现出来(将方法和字段一起包装到一个单元中,单元以类的形式实现)
  • 实现信息隐藏:隐藏对象的具体细节,不让外部直接访问到
  • 将数据和方法包装进类中,加上具体实现的隐藏(访问修饰符),共同称为封装,其结果是一个同时带有特征和行为的数据类型
class Student
{
   
	int age;
	String name;
	double score;
	
	//Java中没有函数指针的概念,直接定义函数即可,由于面向对象特性不用设置形参,因为在此情况下,此方法可以访问到结构体中定义的变量
	void introduce(){
     //方法就是函数
		System.out.println("age=" +age+ ",name=" +name+ ",score=" +score);
	}
	void TestFunc(){
   
		System.out.println("TestFunc");
	}
}

public class Demo1 {
   
	public static void main(String[] args) {
   
		//实例化一个对象
		//类=模板
		//类不能直接使用,不能直接访问变量,需要先实例化,申请一个空间使用
		Student stu1 = new Student();  //构造方法进行传参,也等同于之前使用结构体指针定义时,为指针分配空间
		
		stu1.age = 18;
		stu1.name = "liming";
		stu1.score = 78.5;
		stu1.introduce();
	}
}

10.封装之访问修饰符

public,private,protected和默认 可以修饰普通变量、函数和类,用来规范它们的一些使用空间

image-20221030214303999

变量在进行private之后,同一个类里的函数可以用点的方式获取,但在其他类中不可以通过点运算符的方式获得,但是可以通过被获取的函数间接获取到这个值

11.封装之访问修饰符封装属性及方法

属性封装的实现:对于被private修饰的变量,一般会通过一对接口set与get来对外进行传递

	private int sex;
	
	public void setSex(int finalSex){
    
		sex = finalSex;
	}
	
	public int getSex(){
    
		return sex;
	}
	
	
	stu1.setSex(10);
	System.out.println("sex=" +stu1.getSex());

方法封装的实现:

(传参进来将实际年龄隐藏起来,输出18)

class Student
{
    
	int age;
	String name;
	double score;
	
	private void myAge(int myAge){
    
		age = myAge;
	}
	
	public void setAge(int realAge){
    
		age = realAge;
	}
	
	public int getAge(){
    
		myAge(18);
		return age;
	}
	
}

public class Demo1 {
    
	public static void main(String[] args) {
    
		//实例化一个对象
		//类=模板
		//类不能直接使用,不能直接访问变量,需要先实例化,申请一个空间使用
		Student stu1 = new Student();  //构造方法进行传参,也等同于之前使用结构体指针定义时,为指针分配空间
		
//		stu1.age = 18;
		stu1.setAge(36);
		
		System.out.println("age=" +stu1.getAge());
		
	}
}

12.封装之构造方法

构造方法的概念和作用:

  • 负责对象初始化工作,为对象的属性赋合适的值
  • 创建对象时,其类的构造方法确保在用户操作对象之前,系统保证初始化的进行

构造方法的语法规则:

​ Student(){

​ }

  • 构造方法名与类名一致
  • 没有返回类型(void并不是没有返回类型,是返回的是无类型的)
  • 方式实现主要为字段赋初值

构造方法的调用:new操作符

**Java保证每个类都有构造方法(里面默认都有包含一个Student(){})

方法重载:函数名可以一样,但是参数列表不一样


class Student
{
   
	int age;
	String name;
	double score;
	
	//Java中,方法可以被重载,意思就是函数名可以一样,但是参数列表不一样,在C中不允许
	Student(){
   
		System.out.println("构造方法一被调用");
	

你可能感兴趣的:(安卓学习,java,开发语言)