java概述
与c语言的区别
- 判断的条件必须是逻辑表达式例如if(3)//错误
- char 占两个字节 是用unicode编码存储
- %值可以是浮点数取余
java是一个哲学引申出的对象思想
//Java中的函数叫做方法,方法逻辑意义代表的就是一个事物可以执行的操作
classTriangle
{
inta;
intb;
intc;
intzhouchang()//不需要定义形参,因为zhouchang函数和属性a b c是一个有机整体,彼此当然可以相互访问
{
returna+b+c;
}
doublearea()
{
doublep=1.0* (a+b+c) /2;
returnMath.sqrt(p* (p-a) * (p-b) * (p-c));
}
};
classM
{
publicstaticvoidmain(String[] args)
{
// int i;
// int * p = (int *)malloc(sizeof(int))
// Triangle * r = (Triangle *)malloc(sizeof(Triangle));//c语言用法
Triangles=newTriangle() //java用法,和上面本质相同
s.a=3;
s.b=4;
s.c=5;
System.out.printf("%d %f\n",s.zhouchang(),s.area());
}
}
c语言的函数需要传入参数值可以任意三个垃圾数,不严谨,比如年月日
java只能输入三个三角形的长度值,可以在从语言结构体中在继续声明一些方法且不需要提供形参
【《郝斌java自学视频》-哔哩哔哩】 https://b23.tv/eZncfmZ
环境变量
编译生成。exe文件
找到文件位置
打开终端进入文件位置运行exe文件
把D:\CoderLife\demo\C位置放到path中可以在任意位置执行D:\CoderLife\demo\C的exe文件
运行与编译的插件在C:\Program Files\Java\jdk-18\bin里面
打开环境变量在Path中添加jdk安装路径 ;C:\Program Files\Java\jdk-18\bin
编译成功了运行出错,可以把;C:\Program Files\Java\jdk-18\bin;放置到前面加 . ;表示当前目录
set path :查看路径
classpath
对象与类
什么是类?
把相同的属性概念组合在一起的
什么是对象?
所构造出来具体的事务
在一个源文件中, 只能有一个公有类,但可以有任意数目的非公有类。
多个源文件的使用
javac Employee*.java
classA{
inti;
intj;
}
classTest{
publicstaticvoidmian(String[]args){
Aaa=newA();//等同(A*)malloc(sizeof(A));
//new A();在堆中动态分配一块区域,被当做了A对象,链表的元素和new分配在堆中
//aa本身的内存实在栈中分配的
//堆中内存的地址赋给了aa
//aa指向堆中的内存,aa代表了堆中的内存
//aa.i代表:aa这个静态指针变量所指向的动态内存中的A对象的i这个成员
//aa.j代表:aa这个静态指针变量所指向的动态内存中的A对象的j这个成员
aa.i=10;
aa.j=20;
System.out.printf("%d,%d",aa.i,aa.j);
}
}
classTriagle{
inti,j,k;//如果不加访问控制符,默认是default
voidset(inta,intb,intc)
{
i=a;
j=b;
k=c;
}
}
classTest{
publicstaticvoidmian(String[]args){
Trianglet=newTriangle();
// t.i = 10;//如果访问控制符为private,这里将报错,不能通过类名访问,因为是私有的
//t.j = 20;
//t.k = 30;
t.set(10,20,30);//更好
System.out.printf("%d,%d",aa.i,aa.j);
}
}
在一个类的内部,所有的成员可以相互访问,访问控制符是透明的,访问控制符是针对外部访问而言的
外部访问包括两种方式
- 通过类名访问类内部成员
- 通过类对象访问类内部成员
在一个类的外部:通过
类对象名.私有成员名
的方式是无法访问该对象中的私有成员的,这样写编译时会出错
构造函数
在没有无参函数的情况下,会自动生成;而自己定义了一个有参的函数,使用无参函数就得自己定义无参函数
建议不要在构造函数前加返回值
Java Scanner
java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
下面是创建 Scanner 对象的基本语法:
Scanner s = new Scanner(System.in);
next() 与 nextLine() 区别
next():---单次输入结束
- 1、一定要读取到有效字符后才可以结束输入。
- 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
- 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next() 不能得到带有空格的字符串。
nextLine():----多次标准输入
- 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
- 2、可以获得空白。