01)基础知识
package xiaochen;
public class xiao {
public static void main(String[] args) {
//什么是变量,运行中会变化:标识符规则,不能字母开头,字母数字下划线 规范: 变量名第一个单词首写小写,后面单词首字母大写
//变量三要素:变量名,变量类型,变量值
//什么是常量,运行中不会变化:
System.out.println("1");//输出函数
/*
* 变量:整数类型,byte,int 短整形:short 长整形long 字节:4 2 8
* 浮点类型:float double 字节:4 8
*/
double a=1.5;
float b=1.5f;//要在数字后加f
int peopleAge=17;
//字符型:
char c='S';
//布尔类型:boolean
/*
* 数据类型转换:多字节换少字节不行,但少换多是可以的。
* 高字节换低字节有可能会出错,一定要转换:强制转换;(目标类型):值
* 低字节换高字节:自动类型转换(隐式类型转换)
*/
int d=259;
byte b1=(byte)d;
double b2=(double)d;
/*
* 运算符
* 赋值运算符:=(最低等级)把右边的值赋给左边的变量
*错误例子: a+b=10(错误)a+b不是变量,是式子
*易误解:j=i=5; 是可以的;
*
*算术运算符
*+(加 或者 正) —(减 或者 负) *(乘) /(除) %(取余) 优先从左到右
*错误例子 y=3x+5 (要加*号) 124/12=10(分子分母为整结果不存在四舍五入,小数不要)
*
*条件运算符
*a>b?a:b;成立输出a,不成立输出b;
*
*位运算符
*“~”位取反
*"&"
*"|"
*"^"
*"<<"左移
*">>"右移
*
*运算符的优先级:(), [], ++, --, !, |, ~, instanceof(求数字类型), new(), *, /, %, +, -, >>, <<, >, >=, <, <=, ==, !=,
* &, |, ^, &&, ||, ?:
*
*/
}
}
02)判断语句
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a,b;
System.out.println("请输入两个整数");
Scanner s=new Scanner(System.in);
a=s.nextInt();
b=s.nextInt();
if(a>b)
System.out.println("a="+a+" "+"b="+b+" "+"a>b");//+号只是起到一个连接的作用
else
System.out.println("b="+b+" "+"a="+a+" "+"b>a");
}
}
03)练习:分等级
import java.util.Scanner;
public class test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int score;
char grade;
Scanner s=new Scanner(System.in);
System.out.println("请输入(0~100)整数");
score=s.nextInt();
if(score>=90)
grade='a';
else if(score>=80)//注意隐含score《90;就不用写(score>=80 && score<90)
grade='b';
else if (score>=70)
grade='c';
else
grade='d';
System.out.println("score="+score+" "+"grade="+grade);
}
}
04)面向对象
下面两个代码通过调用,联系在一起的
package a;
public class test {
private String id;
private String name;
private int age;
public test(String id,String name,int age) {//1,可以在输出面上写入
this.id=id;
this.name=name;
this.age=age;
}
public test() {//可以直接输出这个
id="20200210457";
name="xiaoxiaofei";
age=22;
}
public void test() {//调用输出
System.out.print("id="+id+" "+"name="+name+" "+"age="+age+" ");
}
//下面的三组中
public int shopping(String name) {
return 0;
}
public int shopping(String name,int age) {
return 0;
}
public float shopping(String id,String name,int age) {
return 0;
}
/*
* public float shopping(string name) {//错误,就是返回类型可以不一样(int,float等),但是返回的参数不能一样(String ID等)
return 0;
}
*/
}
package a;
public class teat1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
test p1=new test();
p1.test();//调用test中,pubilc void test()
System.out.println();
test p2=new test("20200210457","xiaoxiao",22);
p2.shopping("202020");
p2.test();
}
}
面向对象2
package a;
public class a { //类{属性}
private String id;
private String name;
private int age;
private static String country;//就是跟全局变量有点像,设置一个变量大家都可以用
public a() {
id="456";
name="老唐";
age=30;
country="China";//一般放到不带参数的里面,就是可以不定义,重复使用
}
public a(String id,String name,int age) { //方法的重载 强调:
this.id=id;
this.name=name;
this.age=age;
}
public void print() {
System.out.println("老师叫"+name+","+"今年"+age+"了"+","+"我的ID是"+id+country);
}
public static void swap() {//可以通过类,来调用
System.out.println(country);//在static函数中,只能加静态变量,不能加别的。例如name,id,age。
}
}
package a;
public class b {
public static void main(String[] args) {
a s=new a();
s.print();//继承性
a s1=new a("123","小飞飞",20);//这个是
s1.print();
a s2=new a();
s2.swap();
a.swap();
}
}
05)继承
1,父类
package test;
public class test1 {
private String id;
private String name;
private int age;
public test1() {
id=null;
name=null;
age=0;
}
public test1(String name,String id,int age) { //子类中继承了这里
this.name=name;
this.id=id;
this.age=age;
}
public void print() {
System.out.println(name+" "+id+" "+age);
}
}
2,子类
//新建子类 ->new->class->输入名称test2->Superclass中找到父类->在Which method...中选第二个
package test;
public class test2 extends test1 {
private String num;
private String majoc;
public test2() {
num=null;
majoc=null;
}
//重载:调用父类的构造方法,也要带上子类原来的构造方法
public test2(String name, String id, int age,String num,String majoc) {
super(name, id, age);//**********就是继承了父类**********************
this.num=num;
this.majoc=majoc;
}
//重写
public void print(){
super.print();//***************调用父类*****************************
System.out.println(num+" "+majoc);
}
}
3,主函数
package test;
public class zhulei {
public static void main(String[] args) {
test1 s=new test1();//调用父类的构造方法
s.print();
test2 s1=new test2();//调用子类的构造方法
s1.print();
}
}
06)多态性
主类
package duot;
public class test1 {
private float l;
private float w;
public test1(float l,float w) {
this.l=l;
this.w=w;
}
public float areal(float l) {
return l;
}
public float areaw(float w) {
return w;
}
public void area() {
}
}
子类1
package duot;
public class test2 extends test1 {
private String name;
public test2(float l, float w,String name) {
super(l, w);
this.name=name;
// TODO Auto-generated constructor stub
}
public void area() {
System.out.println(name+":"+super.areal(12)*super.areaw(13));
}
}
子类2
package duot;
public class test3 extends test1 {
private int a;
public test3(float l, float w,int a) {
super(l, w);
this.a=a;
}
public void area() {
System.out.println("面积:"+super.areal(13)*super.areaw(91)+" "+"排位:"+a);
}
}
测试类
package duot;
public class test {
//方法2
public static void w_area(test1 s) {
s.area();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
test1 s=new test1(12,13);
test2 s1=new test2(13,14,"xioaxioa");
test3 s2=new test3(12,13,12);
/*
* 方法1
* s=s1;//向上翻转,这样写,才算多态
*s.area();//统一接口
*s=s2;
*s.area();
}
*/
w_area(s1);
w_area(s2);
}
}
08)接口
1,创建接口
//点击NEW—>再点击interface->输入文件名
package test2022421;
public interface jiekou {
public void powerOn() ;
public void powerOff();
}
2,继承接口
点击NEW->再点击class->在intefaces中选中接口->在将最后一个打钩
package test2022421;
public class shubiao implements jiekou {
private String name="鼠标";
@Override
public void powerOn() {
// TODO Auto-generated method stub
System.out.println(name+":鼠标插入接口");
}
@Override
public void powerOff() {
// TODO Auto-generated method stub
System.out.println(name+":鼠标拔出接口");
}
}
3,在建一个测试类(带main)
package test2022421;
public class ceshi {
//在接口中不能NEW
public static void on_show(jiekou s) { //()括号里的要以接口未对象
s.powerOn();
}
public static void off_show(jiekou l) { //()括号里的要以接口未对象
l.powerOff();
}
public static void main(String[] args) {
shubiao u=new shubiao();
jianpan j=new jianpan();
on_show(u);
off_show(u);
on_show(j);
off_show(j);
}
}
(以上可能会有错误,希望各位帮忙指正)